我在Javascript中编写了以下行:
var eleCategory = document.getElementById("cmbCategory");
现在,我想查找elementbyClassName
元素中包含的所有eleCategory
。
这样的事情有可能吗?
var eleChild = eleCategory.getElementByClassName("autoDropdown");
如何获取父元素的子元素?
答案 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-child
内element
类所有孩子的数组。
使用括号表示法,我们可以访问数组中的第n个子节点,例如
var firstElementChild = elementChildren[0]; // zero-based