Dom使用方法的介绍

标签: dom 方法 | 发表时间:2012-02-21 20:58 | 作者:hanxiaoshuang321123
出处:http://blog.csdn.net
 

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);//添加到末尾

作者:hanxiaoshuang321123 发表于2012-2-21 20:58:45 原文链接
阅读:4 评论:0 查看评论

相关 [dom 方法] 推荐:

Dom使用方法的介绍

- - CSDN博客推荐文章
1.替换节点   replaceNode . 替换节点必须是用父节点的元素去调用这个方法.                     .                     .

DOM详解

- - CSDN博客推荐文章
 1.XML解析方式分为两种:dom和sax.   (1)dom:(Document Object Model, 即文档对象模型) 是 W3C 组织推荐的处理 XML 的一种方式.   (2) sax:(Simple API for XML) 不是官方标准,但它是 XML 社区事实上的标准,几乎所有的 XML 解析器都支持它.

javaScript DOM使用

- - CSDN博客互联网推荐文章
通过 HTML DOM,可访问 JavaScript HTML 文档的所有元素. 1 修改HTML元素内容. document.write(Date()); //在输入流中直接写 document.getElementById(id).innerHTML=new HTML. //改变已经有的元素内容 document.getElementById("image").src="landscape.jpg";.

DOM优化

- - JavaScript - Web前端 - ITeye博客
1,Javascript语音与DOM操作就像孤岛. 他们之间的通行是要借助船的,而使用船是有很大成本的. 所以,要先做完一个再做另一个,最好不要交替进行. 如:添加1000个li时,先用一个字符串拼接好,最后一次追加到父节点,而不是向父节点追加1000次,一次追加一个. 如:添加1000个li时,先放到fragment,再添加到UL中.

Android DOM解析XML

- - CSDN博客移动开发推荐文章
if(personChilds.item(y).getNodeType()==Node.ELEMENT_NODE){//判断当前节点是否是元素类型节点. 作者:jaycee110905 发表于2013-2-7 21:04:29 原文链接. 阅读:78 评论:0 查看评论.

jquery和DOM比较

- - JavaScript - Web前端 - ITeye博客
1、window.onload和$(document).ready()的区别. 必须等整个网页中所有的内容加载完毕后(包括图片)才能执行. 网页中所有DOM结构绘制完毕后就执行,可能DOM元素并没有加载完. 2、jquery对象和DOM对象的区别. Juery对象是包装DOM后的产生的对象,DOM是原生对象,是一个基本的文档结构.

Javascript的DOM操作

- - CSDN博客Web前端推荐文章
返回对拥有指定id的第一个对象进行访问. 返回带有指定名称的节点集合. 返回带有指定标签名的对象集合. 返回带有指定class名称的对象集合. 参数:是否复制原节点的所有属性. 注意:IE会忽略节点间生成的空白文本节点(例如,换行符号),而Mozilla不会这样做. 在删除指定节点的时候不会出错,但是如果要删除最后一个子结点或者是第一个子结点的时候,就会出现问题.

DOM世界的观察者

- - 博客园_Ruby's Louvre
浏览器自带的观察者实在太多了. 经典的不用说,就是onclick, attachEvent, addEventListner,可惜它们只是监听用户的行为. 不过这当中有个特例是propertychange,当元素的属性,不管是自定义还是原生,只要发生改变,就会触发回调. 我们还可以通过它的事件对象的propertyName知道那个元素发生改变.

javascript之XML DOM的解析

- - ITeye博客
javascript之XML DOM的解析. . 长春. 吉林市. 四平. 松原. 通化. .

也许,DOM 不是答案

- - 阮一峰的网络日志
有一个词"手机网站"(mobile web),指供手机浏览的网站,但它是不存在的. 人们提到"移动互联网"的时候,其实专指另外一样东西:手机App. 一、Web App vs. 比起手机App,网站有一些明显的优点. 快速部署:升级只需在服务器更新代码. 超链接:可以与其他网站互连,可以被搜索引擎检索.