Как искать детей HTMLDivElement?
У меня есть HTMLDivElement
, и моя цель - найти в нем div
.
В идеале я хотел бы что-то вроде getElementById
, но эта функция не работает для HTMLDivElement
.
Нужно ли мне вручную перемещать график, или есть более простой способ?
Ответы
Ответ 1
Демо: 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' );
Ответ 2
//For immediate children
var children = document.getElementById('id').childNodes;
//or for all descendants
var children = document.getElementById('id').getElementsByTagName('*');
Ответ 3
var div = ...
var divChildren = div.getElementsByTagName("div");
var divYouWant = [].filter.call(divChildren, function (el) {
return matchesSomeCondition(el);
});
В идеале я хотел бы получить что-то вроде getElementById
И вы можете использовать getElementById
просто сделать document.getElementById(id)
, и поскольку идентификаторы уникальны, вы найдете тот единственный элемент, который вам нужен.
Вы также можете использовать elem.getElementsByClassName
для выбора потомка elem by class