如何搜索HTMLDivElement的子项?

时间:2012-01-11 20:48:47

标签: javascript dom

我有一个HTMLDivElement,我的目标是在此下面找到一个div

理想情况下,我想要getElementById之类的内容,但该功能对HTMLDivElement不起作用。

我是否需要手动遍历图表,还是有更简单的方法?

3 个答案:

答案 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的后代