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

web前端学习笔记,实践篇(七)使用原生JavaScript操作DOM

2012年06月26日 ⁄ 综合 ⁄ 共 1318字 ⁄ 字号 评论关闭

原生JavaScript操作Dom结构:

对于DOM,我们要了解它的性质,这是针对HTML XML文档的一个API。它描绘了一个层次化的节点树,允许开发人员进行,增删改查。下面以一个HTML片段来说明DOM节点树。

<html>
      <head>
          <title></title>
      </head>
      <body>
          <div>
               <p></p>
          </div>
      </body>
</html>

它描绘了一个层次化的节点树,以html为根,依次是[head,body][title,div][p]。理清关系,才能明白如何操作。

 如何判断元素,在dom中Node对象定义了如何判断元素的属性,nodetype。

var a = document.getElementById("a");
if(a.nodetype == 1){

}

对于nodetype属性,它返回的值,分别代表了一些含义,比如1,返回的是元素。2返回的是Attr。3返回的是TEXT。在判断完a是否为元素,如果是,则可以使用nodename来返回它究竟是何元素标签。

 在一段HTML片段中,我们如何获取它?

 

<html>
    <head></head>

    <body>
         <div id="de">
                 <a>1</a>
                 <a>2</a>
         </div>
    </body>
</html>

如果我们要获取id,var a = document.getElementById("de");  //返回一个对象

如果我们要获取id为de下的内容呢?var b = a.getElementsByTagName("a");   //返回一个数组

如果我们要添加一个新的a链接呢?var d = document.createElement(a); a.appendChild(d);  //创建一个元素,添加到de这个div中  

我们还可以动态的加载dom,一个比较简单的方式,document.write("<a><3/a>");  

当我们需要改变或者添加属性时,可以:a.getAttribute("id");  a.setAttribute("title","de"); a.setAttribute("id","dell");

当我们需要遍历节点时,可以使用childNodes属性。

如果要查找某个具体的元素,还可以如此:var b = a.getElementsByTagName("a")[0];

总的来说,操作DOM,可以用document.getElementById、document.getElementsByTagName来查找元素,用getAttribute、setAttribute来修改属性或者添加新的属性,用document.createElement()、 document.createTextNode()方法来创建新的元素节点与文本节点,用Node.appendChild() Node.insertBefore()  Node.replaceChild()来添加到文档。用nodetype来判断是否为元素,nodename nodevalue来返回是什么类型的html 节点片段。

深入的了解,这里建议参阅《JavaScript权威指南第五版》、《JavaScript高级程序设计第二版》。

抱歉!评论已关闭.