前端BOM

BOM:浏览器对象模型

window

  alert:弹出信息框

alert('String')
// 或者
Window.alert("String")

  confirm:弹出确认框,确定或取消;返回结果赋值给一个变量

var a=window.confirm("确定离开?")   // true or false

  prompt:弹出输入框,用一个变量接受输入信息

var a=window.prompt("请输入:")

  定时器:setTimeout或setInterval

setInterval                   // 多次定时器,间隔性执行
clearInterval                // 清除多次定时器
setTimeout                  // 单次定时器,设置定时器后,定时器后面的操作继续执行
clearTimeout                // 清除单次定时器 

window.setTimeout(function(){
       console.log('开始定时');      
} ,1000)
console.log('继续执行')   // 无论定时器设置0还是1000毫秒,都先打印"继续执行"

var num=0;
var timer=null;
timer=setInterval(function(){
      num++;
      if(num>5){
          clearInterval(timer);
          return;
        }
       console.log('num:'+num);
}, 1000);            

location

location.host
location.hostname
location.href                  // 若赋值一个新的url(location.href='www.baidu.com'),则进行跳转;若console.log(location.href),则打印当前url
location.reload                // 重新加载网页,可以和定时器结合使用
location.replace               // location.replace('www.baidu.com'),跳转网页,不会产生历史记录,点击网页前进后退不会返回这个页面
location.pathname
location.port
location.protocol
location.search

function getQueryString(){
    var qs = location.search.length>0 ? location.search.substring[1]:'';
    var items=qs.length ? qs.split('&'):[];
    var item=null,name=null,value=null,args={};
    for (var i=0; i<items.length;i++){
        item=items[i].split('=');
        name=decodeURIComponent(item[0]);
        value=decodeURIComponent(item[1]);
        if(name.length){
              args[name]=values;
          } 
   }
    return args;
}   
var args = getQueryString();
console.log(args.name);
console.log(args.pwd)     ;    

navigator

用于检测浏览器上的插件

function hasPlugin(name){
    name=name.toLowerCase();
    for(var i=0;i<navigator.plugins.length;I++){
        if(navigator.plugins[i].name.toLowerCase().indexOf(name)>-1) 
         {
             return true;
         }else{
             return false;  
         }
    }
    alert(hasPlugin('flash'))


}

history

网页的历史记录

var count=0;
setTimeout(function(){
    count++;
    histroy.go(0)  // 0表示刷新,1表示网页前进按钮,-1表示网页后退按钮
}, 2000)

 


前端DOM

文档对象模型(Document Object Model,DOM)是一种用于HTML和XML文档的编程接口。它给文档提供了一种结构化的表示方法,可以改变文档的内容和呈现方式。我们最为关心的是,DOM把网页和脚本以及其他的编程语言联系了起来。DOM属于浏览器,而不是JavaScript语言规范里的规定的核心内容。

查找元素

  直接查找

  document.getElementById           // 根据ID获取一个标签
  document.getElementsByName        // 根据name属性获取标签集合
  document.getElementsByClassName   // 根据class属性获取标签集合
  document.getElementsByTagName     // 根据标签名获取标签集合

  间接查找

 parentNode               // 父节点
 childNodes               // 所有子节点
 firstChild               // 第一个子节点
 lastChild                // 最后一个子节点
 nextSibling              // 下一个兄弟节点
 previousSibling          // 上一个兄弟节点 
 parentElement            // 父节点标签元素
 children                 // 所有子标签
 firstElementChild        // 第一个子标签元素
 lastElementChild         // 最后一个子标签元素
 nextElementtSibling      // 下一个兄弟标签元素
 previousElementSibling   // 上一个兄弟标签元素

操作

节点对象的三大属性

// 在DOM中。每一个节点都是一个对象;DOM节点有三大属性

nodeNname     // 节点名称,只读
// 元素节点的nodeName与标签名相同
// 属性节点的nodeName与属性名称相同
// 文本节点的nodeName永远是#text
// 注释节点的nodeName永远是#comments

nodeValue       // 节点的值
//  元素节点的nodeValue是undefined或null
//  文本节点的nodeValue是文本自身
//  属性节点的nodeValue是属性的值

nodeType        // 节点的类型
//  元素的nodeType为1
//  属性nodeType为2
//  文本的nodeType为3
//  注释的nodeType为8
//  文档的nodeType为9

操作内容

  innerText   文本
  outerText
  innerHTML   HTML内容
  innerHTML  
  value       值 

操作属性

  attributes                // 获取标签所有属性
  setAttribute(key,value)   // 设置标签属性
  getAttribute(key)         // 获取指定标签属性值

 

 1 <!DOCTYPE html>
 2 <html>
 3 <head lang="en">
 4     <meta charset="UTF-8">
 5     <title></title>
 6 </head>
 7 <body>
 8     <input type="button" value="全选"  onclick="CheckAll();"/>
 9     <input type="button" value="取消" onclick="CancelAll();"/>
10     <input type="button" value="反选" onclick="ReverseCheck();"/>
11 
12     <table border="1" >
13         <thead>
14 
15         </thead>
16         <tbody >
17             <tr>
18                 <td><input type="checkbox" /></td>
19                 <td>111</td>
20                 <td>222</td>
21             </tr>
22             <tr>
23                 <td><input type="checkbox" /></td>
24                 <td>111</td>
25                 <td>222</td>
26             </tr>
27             <tr>
28                 <td><input type="checkbox" /></td>
29                 <td>111</td>
30                 <td>222</td>
31             </tr><tr>
32                 <td><input type="checkbox" /></td>
33                 <td>111</td>
34                 <td>222</td></tr>
35         </tbody>
36     </table>
37     <script>
38         function CheckAll(ths){
39             var tb = document.getElementById('tb');
40             var trs = tb.childNodes;
41             for(var i =0; i<trs.length; i++){
42 
43                 var current_tr = trs[i];
44                 console.log(current_tr.nodeType)
45                 if(current_tr.nodeType==1){
46                     var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
47                     inp.checked = true;
48                 }
49             }
50         }
51 
52         function CancelAll(ths){
53             var tb = document.getElementById('tb');
54             var trs = tb.childNodes;
55             for(var i =0; i<trs.length; i++){
56 
57                 var current_tr = trs[i];
58                 if(current_tr.nodeType==1){
59                     var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
60                     inp.checked = false;
61                 }
62             }
63         }
64 
65         function ReverseCheck(ths){
66             var tb = document.getElementById('tb');
67             var trs = tb.childNodes;
68             for(var i =0; i<trs.length; i++){
69                 var current_tr = trs[i];
70                 if(current_tr.nodeType==1){
71                     var inp = current_tr.firstElementChild.getElementsByTagName('input')[0];
72                     if(inp.checked){
73                         inp.checked = false;
74                     }else{
75                         inp.checked = true;
76                     }
77                 }
78             }
79         }
80 
81     </script>
82 </body>
83 </html>
84 
85 Demo
反选1

相关文章: