2011-12-01 31 views
5

的JavaScript获得子元素我写了下面的一行在Javascript:通过类名

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

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

这是可能的这样的事情吗?

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

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

+0

[问题相关的document.getElementByClassName()在JavaScript]的可能重复(http://stackoverflow.com/questions/8309071/issue-related-to-document-getelementbyclassname-in-javascript) – JJJ

+0

无它是不同的。第一次是层次结构className-> ClassName这次我有hiearchy id-> className –

+1

我没有看到为什么你不能在上一个问题中使用任何答案。 – JJJ

回答

4

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

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> 
4
var eleChild = eleCategory.childNodes; 
for(i = 0 , j = eleChild.length; i < j ; i++){ 
    if(eleChild[ i ].className == "autodropdown"){ 
     YOUr_SCRIPT 
    } 
} 
2

可以在DOM树访问一切写了,这一点:

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

只要寻找的childNodes的的childNodes。 如果我没记错的话,您可以:

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

现代的方式:

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

elementChildren将包含所有孩子的一个阵列内element一类Element-child

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

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