现在的位置: 首页 > 综合 > 正文

Dom使用方法的介绍

2014年03月07日 ⁄ 综合 ⁄ 共 4186字 ⁄ 字号 评论关闭

 

Dom使用方法的介绍

1.替换节点   replaceNode 

替换节点必须是用父节点的元素去调用这个方法

举例:

<div id="bdy">

               <select name="edu" id="edus">

                    <option value="博士" id="bs">博士</option>

                    <option value="硕士">硕士</option>

                    <option value="本科">本科</option>

                    <option value="本科" id="dz">大专</option>

                </select>

            </div>

           <div>

              <input type="text" id="uname" value="确定">

       </div>

替换节点,把博士替换为大专:

        //博士节点

        var bsNode = document.getElementById("bs");

      

       //父节点

       var edusNode = bsNode.parentNode;

      

       //替换的节点

       var dzNode = document.getElementById("dz");

      

    edusNode.replaceNode(dzNode,bsNode);

注:值得注意的是在替换的时候要保证两个都存在,一般情况下用id来来获取,所以应该有id

2.属性节点的使用(以上面的html的代码为例)

(1).getAttribute

getAttribute  通过元素节点来获取该节点的属性名

举例:

var edus = document.getElementById("edus");

var value = edus.getAttribute("name");

输出的结果为:edu

(2).getAttributeNode

getAttributeNode   通过元素节点来获取指定的属性名节点对象

举例:

var nameNode = edus.getAttributeNode("name");

    alert(nameNode.nodeName+"-----"+nameNode.nodeValue+"===="+nameNode.nodeType);

(3).setAttribute

setAttribute(newNode,oldNode) 设置的属性值是有2个参数,意思是为哪个属性修改值,修改的值是多少

举例1:

   edus.setAttribute("name","laowang");

   执行的效果为:当执行之后,在页面中没有任何变化,但是当在修改之后输出的哈=话,就有变化。

 

举例2:改变input中的type,看看效果

        var uname = document.getElementById("uname");

       //设置type的属性值为button

       uname.setAttribute("type","button");

       //设置type的属性值为checkbox

       uname.setAttribute("type","checkbox");

       //得到改变后的type值

       var value =  uname.getAttribute("type");

        //输出类型

   alert(value);

执行的效果:在firefox中执行的效果可以明显的看出随着type的改变而改变,而在IE中没有显示,因为在IE中设置的属性的语句是无效的。

 

 

3.当选中复选框的时候触发的事件,并弹出选中的value值

    var edus = document.getElementById("edus");

       edus.onchange = function(){

           //获取edus里面的所有的options节点

           var options = this.getElementsByTagName("option");

           //遍历

           for(var i = 0;i<options.length;i++){

              //判断是否选中

              if(options[i].selected){

                  //打印出结果

                  alert("你改变了选择:"+options[i].value);

              }

           }

    }

    弹出选中的value值还可以这么写,简化:

       edus.onchange = function(v){

           alert(v.explicitOriginalTarget.label);

}

 

4.getElementsByName

       //获取的是name=fav的所有节点对象

       var favs = document.getElementsByName("fav");

      

       //遍历出节点的value值

       for(var i = 0;i<favs.length;i++){

           //得到一个具体的节点

           var fav = favs[i];

           //注册事件

           fav.onclice = function(){

              alert("真的喜欢"+this.value+"?");

           }

       }

 

5.getElementsByTagName

使用的html为:

       <div id="spr">

           你喜欢的小品和歌曲是谁?<br/>

           <hr color="red"/>

           <input type="checkbox" name="fav" value="荆轲刺秦">荆轲刺秦

           <input type="checkbox" name="fav" value="面试">面试

           <input type="checkbox" name="fav" value="穿越">穿越

           <input type="checkbox" name="fav" value="因为爱情">因为爱情

    </div>

 

getElementsByTagName  获取edus下面的指定的元素名称的value值

举例1 :

    var edus = document.getElementById("edus");

       var options = edus.getElementsByTagName("option");

           var msg = "";

           //遍历所有的option的value值

           for(var i = 0;i<options.length;i++){

              msg+=" value="+options[i].value+"----";

           }

        alert(msg);

    执行的效果为:

        value=博士---- value=硕士---- value=本科---- value=大专 ----

举例2:

使用的getElementById举例(以以上的代码为例):

    //根据标签名称获取该标签名称的input的节点

       var inputNodes = document.getElementsByTagName("input"); 

      

       //获取指定节点中的所有input对象

       var sprNode = document.getElementById("spr");

      

       //getElementsByTagName可以归某个节点所有    sprNode必须是元素节点才可调研

       var sprInputsNodes = sprNode.getElementsByTagName("input");

      

       //打印出spr节点中所有的input节点对象,并且要求type=“checkbox”

      

       //遍历所有的spr里边的节点

       for(var i = 0;i<sprInputsNodes.length;i++){

           //获取指定的节点

           var inputNode = sprInputsNodes[i];

           if(inputNode.type=="checkbox"){

              alert(inputNode.value);

           }

    }

注: 从以上的代码中可以看出getElementsByTagName的调用对象不止是document,也可以是元素节点

 

 

6.创建元素节点  createElement

以下面这段html为例:

    <div id="bdy">

              

     </div>

 举例代码为:

        //创建元素

       var inputNode = document.createElement("input");//返回的是元素节点

       //为元素赋值

       inputNode.setAttribute("type","text");

       inputNode.setAttribute("name","uname");

      

       //获取指定的节点

       var bdyNode = document.getElementById("bdy");

       //给指定的节点添加子节点

       bdyNode.appendChild(inputNode);//添加到末尾

【上篇】
【下篇】

抱歉!评论已关闭.