元素可以有任意数目的子节点和后代节点,因为元素可以是其他元素的子节点。元素的childNodes属性中包含了它的所有子节点,这些子节点有可能是元素、文本节点、注释或处理指令。
不同浏览器在看待这些节点方面存在显著的不同,以下面的代码为例:
ltem l
ltem 2
ltem 3
对于这段代码,
元素在任何浏览器中都会包含3个子节点。如果需要通过childNodes属性遍历子节点,那么一定不要忘记浏览器间的这一差别。这意味着在执行某项操作以前,通常都要先检
查一下nodeTpye属性,如下面的例子所示:
for (var i=0;len=element.childNodes.length;i if (element. childNodes[i].nodeType==1){
//执行某些操作
}
}
这个例子会循环遍历特定元素的每一个子节点,然后只在子节点的nodeType等于1(表示是元素节点)的情况下,才会执行某些操作。
如果想通过某个特定的标签名取得子节点或后代节点该怎么办呢?实际上,元素也支持getElement sByTagName()方法。在通过元素调用这个方法时,除了搜索起点是当前元素之外,其他
方面都跟通过document调用这个方法相同,因此结果只会返回当前元素的后代。例如,要想取得前面
元素中包含的所有
元素,可以使用下列代码:
var ul=document. getElementByld(”myList”);
var items=ul. getElementsByTagName(”li”);
要注意的是,这里
的后代中只包含直接子元素。不过,如果它包含更多层次的后代元素,那么各个层次中包含的
元素也都会返回。
本文仅限内部技术人员学习交流,不得作于其他商业用途.希望此文对广技人员有所帮助。原创文章出自:南昌网站建设公司-百恒网络 http: //www.jxbh.cn 如转载请注明出处!