一聚教程网:一个值得你收藏的教程网站

热门教程

dom 查找节点_设置/获取属性节点

时间:2022-07-02 13:48:50 编辑:袖梨 来源:一聚教程网

3,查找节点

相对上面的方法,查找节点是比较简单的。

因为很多人都用过。(记得我认识js的第一句就是getElementById();)

getElementById();

返回一个对象, 对象拥有 nodeName , nodeType , parentNode , ChildNodes 等属性。

getElementsByTagName() 查找标签名的所有元素。

返回一个集合,可以用循环取出每个对象,对象拥有 nodeName , nodeType , parentNode , ChildNodes 等属性。

例子:

  var ps = document.getElementsByTagName(p);

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

           ps[i].setAttribute(title,hello);

//也可以使用:  ps.item(i).setAttribute("title","hello");

}

4, 设置/获取属性节点。

setAttribute();//设置

例子:

var a  = document.createElement(p);

a.setAttribute(title,my demo);

不管以前有没有title属性,以后的值 是 my demo。

getAttribute();//获取

例子:

var a =document.getElementById(cssrain);

var b = a.getAttribute(title);

获取的时候,如果属性不存在,则返回空,注意ie和ff返回不同。

  

    aaaa

bbbb

  var paras = document.getElementsByTagName("p");

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

  var title_text = paras[i].getAttribute("title");

  if (title_text != null) {

  //这样写会有个问题:ff只弹一次,ie却弹了2次。

  //如果  if (title_text != "") 这样写,ie只弹1次,ff却弹出2次。

  //如果这样写呢? if (title_text)   ,我们发现,ie只弹1次,ff也只弹出1次。

  //if (title_text) 才是我们想要的。

  //注意:如果不存在 ff下返回null

  //ie返回 "" ;

alert(title_text);

  }

}

  

返回虽然不同,但是可以用一个方法来判断。

if(a.getAttribute(title) ){  

//  do something

 }

5,hasChildNodes:

由名字就可以知道,是判断元素是否有子节点。

返回boolean类型。

文本节点和属性节点不可能有子节点,所以他们的hasChildNodes 永远返回false;

hasChildNodes经常跟 childNodes 一起使用。

比如:

 

 

 

 

 

 

相关文章

热门栏目