首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

,怎么获得元素下的一个节点

2013-11-01 
求助,如何获得元素下的一个节点div idparentdiv idchild1div idchild11/div/divdiv i

求助,如何获得元素下的一个节点


<div id="parent">
  <div id="child1">
     <div id="child11"></div>
  </div>
  <div id="child2"></div>
</div>


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

获得了父元素parent的情况下怎么根据父元素parent获取其下面的子节点,如获取child1,child11,不要直接用getElementById,求大神解答
[解决办法]
遍历childNodes

<div id="parent">
  <div id="child1">
     <div id="child11"></div>
  </div>
  <div id="child2"></div>
</div>
<script type="text/javascript">
    function getChildNode(childNodes, index) {
        var node = -1;
        for (var i = 0, j = childNodes.length; i < j; i++)
            if (childNodes[i].nodeType == 1) {
                node++;
                if (node == index) return childNodes[i];
            }
            return false;
    }
    window.onload = function () {
        var parent = document.getElementById("parent");
        var child1 = getChildNode(parent.childNodes, 0);
        alert(child1.id)
        var child11 = getChildNode(child1.childNodes, 0);
        alert(child11.id)
    }
</script>

[解决办法]
DOM遍历有一系列接口的。

previousSibling //前一个节点
nextSibling  //下一个节点
firstChild  //第一个孩子
lastChild   //最后一个孩子
childNodes  //所有的孩子节点,nodeList类型的

以上是XML DOM标准接口,在其他语言的DOM实现中都是统一的。

但是以上接口有一个缺点,那就是文本节点也算节点。html为了格式美观,通常会保留换行和缩进。
于是,现代浏览器又提供了一系列类似的接口,用来只关心Element节点。

previousElementSibling
nextElementSibling
firstElementChild
lastElementChild
children

以上接口需现代浏览器才支持。

热点排行