读书人

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

发布时间: 2013-11-01 14:43:02 作者: rapoo

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


<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

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

读书人网 >JavaScript

热点推荐