JavaScript通过className获取子元素

时间:2011-12-01 07:32:54

标签: javascript

我在Javascript中编写了以下行:

var eleCategory = document.getElementById("cmbCategory");

现在,我想查找elementbyClassName元素中包含的所有eleCategory

这样的事情有可能吗?

 var eleChild = eleCategory.getElementByClassName("autoDropdown");

如何获取父元素的子元素?

5 个答案:

答案 0 :(得分:6)

getElementsByClassName尚未在所有浏览器中实施。例如,Niels' solution在IE中不起作用。但是,其他人已经创建了自己的实施; John Resig在his blog

上写了一篇文章

答案 1 :(得分:4)

是的,有可能,请看这个小提琴:http://jsfiddle.net/ajAY2/

getElementsByClassName将返回元素集合,因为它将查找对象中的所有类。因此,如果你在这个对象中只有1个这样的类,你必须得到第0个对象,如:

var eleChild = eleCategory.getElementsByClassName("autoDropdown")[0];

总脚本:

脚本:

var eleCategory = document.getElementById("cmbCategory");
var eleChild = eleCategory.getElementsByClassName("autoDropdown");
alert(eleChild.length);

HTML

<div id="cmbCategory">

    <div class="autoDropdown"></div>
    <div class="autoDropdown"></div>
</div>

<div class="autoDropdown"></div>

答案 2 :(得分:4)

var eleChild = eleCategory.childNodes;
for( i = 0 , j = eleChild.length; i < j ; i++ ){
    if( eleChild[ i ].className == "autodropdown" ){
        YOUr_SCRIPT
    }
}

答案 3 :(得分:2)

您可以访问DOM树中的所有内容,其中包含:

document.childNodes[0].childNodes[0].childNodes[0] ... n[n] ... 

只需查看子节点的子节点。 如果我没记错,你可以:

var element = document.getElementById("myid");
var child = element.childNode[0]

答案 4 :(得分:0)

现代方式:

var element = document.querySelector('#Element');
var elementChildren = element.querySelectorAll('.Element-child');

elementChildren将包含Element-childelement类所有孩子的数组。

使用括号表示法,我们可以访问数组中的第n个子节点,例如

var firstElementChild = elementChildren[0]; // zero-based