一、DOM获取元素节点的子节点

 1getElementsByTagName()

返回当前节点的指定标签名子节点

2childNodes

    表示当前节点的所有子节点

3firstChild

表示当前节点的第一个子节点

4lastChild

表示当前节点的最后一个子节点

 

<head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title>Untitled Document</title>
        <link rel="stylesheet" type="text/css" href="style/css.css" />
        <script type="text/javascript">
             function myQuery(idStr,func){
                 var btn=document.getElementById(idStr);
                 btn.onclick=func;
             } 
             window.onload=function(){
                 var cityEle= document.getElementById("city");
                    //1.查找#bj节点
                   /*  var btnEle=document.getElementById("btn01");
                    btnEle.onclick=function(){
                        var liEle=document.getElementById("bj");
                        alert(liEle.innerHTML);
                    } */
                
                myQuery("btn01",function(){
                    var bjEle=document.getElementById("bj");
                    alert(bjEle.innerHTML);
                });
                
                //2.查找所有li节点
                    /* var btn=document.getElementById("btn02");
                    btn.onclick=function(){
                        var liEles=document.getElementsByTagName("li");
                        for(var i=0;i<liEles.length;i++){
                            alert(liEles[i].innerHTML);
                        }
                    }; */
                
                myQuery("btn02",function(){
                    var liEles=document.getElementsByTagName("li");
                    for(var i=0;i<liEles.length;i++){
                        alert(liEles[i].innerHTML);
                    }
                });
                //3.查找name=gender的所有节点
                   /*  var btn=document.getElementById("btn03");
                    btn.onclick=function(){
                        var liEles=document.getElementsByName("gender");
                        for(var i=0;i<liEles.length;i++){
                            alert(liEles[i].value);
                        }
                    }; */
                 myQuery("btn03",function(){
                     var liEles=document.getElementsByName("gender");
                     for(var i=0;i<liEles.length;i++){
                         alert(liEles[i].value);
                     }
                 }); 
                
                //4.查找#city下所有li节点
                 myQuery("btn04",function(){
                    var liEles=cityEle.getElementsByTagName("li");
                    for(var i=0;i<liEles.length;i++){
                        alert(liEles[i].innerHTML);
                    }
                 }); 
                
                //5.返回#city的所有子节点
                myQuery("btn05",function(){
                    
                    var Eles=cityEle.childNodes;
                    for(var i=0;i<Eles.length;i++){
                        if(Eles[i].nodeType == 1){
                              alert(Eles[i].innerHTML);
                          }
                    }
                    
                });
                
                //6.返回#phone的第一个子节点
                myQuery("btn06",function(){
                    var phoneEle=document.getElementById("phone");
                    var Eles1=phoneEle.firstChild;
                    alert(Eles1.innerHTML);
                });
                
                //7.返回#bj的父节点
                myQuery("btn07",function(){
                    var bEle=document.getElementById("bj")
                    var Eles2=bEle.parentNode;
                    alert(Eles2.innerHTML);
                    
                });
                
                //8.返回#android的前一个兄弟节点
                myQuery("btn08",function(){
                    var bEl=document.getElementById("android");
                    var Eles3=bEl.previousSibling;
                    alert(Eles3.innerHTML);
                });
                
                //9.读取#username的value属性值
                 myQuery("btn09",function(){
                    var bEl=document.getElementById("username");
                    alert(bEl.value);
                });

                //10.设置#username的value属性值
                myQuery("btn10",function(){
                    var bEl=document.getElementById("username");
                    bEl.value="3lse";    
                });
                //11.返回#bj的文本值
                //第一种方法
                myQuery("btn11",function(){
                    var bEl=document.getElementById("bj");
                    alert(bEl.innnerHTML);    
                });
                //第二种方法
                myQuery("btn11",function(){
                    var bEl=document.getElementById("bj");
                    bEl.firstChild;    
                    alert(bEl.nodeValue);
                });
                
               }    
        </script>
    </head>
<body>
        <div id="total">
            <div class="inner">
                <p>
                    你喜欢哪个城市?
                </p>

                <ul id="city">
                    <li id="bj">北京</li>
                    <li>上海</li>
                    <li>东京</li>
                    <li>首尔</li>
                </ul>

                <br>
                <br>

                <p>
                    你喜欢哪款单机游戏?
                </p>

                <ul id="game">
                    <li id="rl">红警</li>
                    <li>实况</li>
                    <li>极品飞车</li>
                    <li>魔兽</li>
                </ul>

                <br />
                <br />

                <p>
                    你手机的操作系统是?
                </p>

                <ul id="phone"><li>IOS</li><li id="android">Android</li><li>Windows Phone</li></ul>
            </div>

            <div class="inner">
                gender:
                <input type="radio" name="gender" value="male"/>
                Male
                <input type="radio" name="gender" value="female"/>
                Female
                <br>
                <br>
                name:
                <input type="text" name="name" id="username" value="abcde"/>
            </div>
        </div>
        <div id="btnList">
            <div><button id="btn01">查找#bj节点</button></div>
            <div><button id="btn02">查找所有li节点</button></div>
            <div><button id="btn03">查找name=gender的所有节点</button></div>
            <div><button id="btn04">查找#city下所有li节点</button></div>
            <div><button id="btn05">返回#city的所有子节点</button></div>
            <div><button id="btn06">返回#phone的第一个子节点</button></div>
            <div><button id="btn07">返回#bj的父节点</button></div>
            <div><button id="btn08">返回#android的前一个兄弟节点</button></div>
            <div><button id="btn09">返回#username的value属性值</button></div>
            <div><button id="btn10">设置#username的value属性值</button></div>
            <div><button id="btn11">返回#bj的文本值</button></div>
        </div>
    </body>

 

二、获取父节点和兄弟节点

 1parentNode

            表示当前节点的父节点

2、previousSibling

     表示当前节点的前一个兄弟节点

3、nextSibling

   表示当前节点的后一个兄弟节点

三、元素节点的属性

其他属性

  .this表示当前函数所属的对象

 checkedAllBox.onclick=function(){
         for(var i=0;i<items.length;i++){
             //this表示当前函数所属的对象,即this=checkedAllBox
             items[i].checked =this.checked;
          }
         };

 

nodeValue文本节点

   通过nodeValue的属性获取和设置文本节点的内容

innerHTML元素节点

 通过该属性获取和设置标签内部的html代码

 

三、增、删、改

 1、 创建元素节点

document.createElement(标签名)

 2、 创建文本节点

document.createTextNode(文本值)

 3、 添加子节点

父节点.appendChild(子节点)

 4、 插入节点

父节点.insertBefore(新节点,旧节点)

5、替换节点

父节点.replaceChild(新节点,旧节点)

 6、 删除节点

父节点.removeChild(子节点)

子节点.parentNode.removeChild(子节点)

7、 读写元素内部HTML代码

读取元素.innerHTML

设置元素.innerHTML = 新值