我有一个HTMLDivElement
,我的目标是在此下面找到一个div
。
理想情况下,我想要getElementById
之类的内容,但该功能对HTMLDivElement
不起作用。
我是否需要手动遍历图表,还是有更简单的方法?
答案 0 :(得分:51)
演示:http://jsfiddle.net/ThinkingStiff/y9K9Y/
如果您要搜索的<div>
有课程,则可以使用getElementsByClassName()
:
document.getElementById( 'parentDiv' ).getElementsByClassName( 'childDiv' )[0];
如果没有课程,您可以使用getElementsByTagName()
:
document.getElementById( 'parentDiv' ).getElementsByTagName( 'div' )[0];
如果它有id
,您当然可以使用getElementById()
来查找它,无论它在DOM中的位置如何:
document.getElementById( 'childDiv' );
答案 1 :(得分:6)
//For immediate children
var children = document.getElementById('id').childNodes;
//or for all descendants
var children = document.getElementById('id').getElementsByTagName('*');
答案 2 :(得分:3)
var div = ...
var divChildren = div.getElementsByTagName("div");
var divYouWant = [].filter.call(divChildren, function (el) {
return matchesSomeCondition(el);
});
理想情况下,我想要像getElementById
这样的东西
你可以使用getElementById
只做document.getElementById(id)
,因为ids是唯一的,它会找到你想要的单个div项。
您还可以使用elem.getElementsByClassName
按类选择elem的后代