如何搜索HTMLDivElement的子项?

A Q*_*ker 33 javascript dom

我有一个HTMLDivElement,我的目标是找到一个div嵌套在这下面.

理想情况下,我想要类似的东西getElementById,但该功能不起作用HTMLDivElement.

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

Thi*_*iff 59

演示:http://jsfiddle.net/ThinkingStiff/y9K9Y/

如果<div>您正在搜索有课程,您可以使用getElementsByClassName():

document.getElementById( 'parentDiv' ).getElementsByClassName( 'childDiv' )[0];
Run Code Online (Sandbox Code Playgroud)

如果它没有类,您可以使用getElementsByTagName():

document.getElementById( 'parentDiv' ).getElementsByTagName( 'div' )[0];
Run Code Online (Sandbox Code Playgroud)

如果它有,id你当然可以用getElementById()它来找到它,无论它在DOM中的位置:

document.getElementById( 'childDiv' );
Run Code Online (Sandbox Code Playgroud)


Emm*_*l N 6

  //For immediate children 

  var children = document.getElementById('id').childNodes;

   //or for all descendants

   var children = document.getElementById('id').getElementsByTagName('*');
Run Code Online (Sandbox Code Playgroud)


Ray*_*nos 5

var div = ...
var divChildren = div.getElementsByTagName("div");
var divYouWant = [].filter.call(divChildren, function (el) {
  return matchesSomeCondition(el);
});
Run Code Online (Sandbox Code Playgroud)

理想情况下,我想要像 getElementById 这样的东西

您可以使用getElementByIdjust do document.getElementById(id)and 因为 ids 是唯一的,可以找到您想要的单个 div 项目。

您还可以使用elem.getElementsByClassName按类选择 elem 的后代