Как получить элемент, захороненный внутри элемента, который вы захватили? - PullRequest
1 голос
/ 20 февраля 2012

Надеюсь, я смогу объяснить это достаточно хорошо. Я делаю

var foo = document.getElementsByTagName('bar');
var len = foo.length;
for(var i=0;i<len;i++){
//Do stuff
}

Внутри этого я также хочу иметь возможность получить элемент (в частности, класс), который похоронен глубоко внутри foo [i]. Моя мысль что-то вроде

var whatIWant = document.getElementsByClassName("name").foo[i];

но это не то, что мне нужно делать. Я просто не уверен в синтаксисе или мне нужно сделать что-то совершенно другое?

Ответы [ 2 ]

3 голосов
/ 20 февраля 2012

Вы почти получили это:

foo = document.getElementsByTagName('bar');
// foo is now a nodelist of all nodes named 'bar'.

for (i = 0; i < foo.length; i++) {
   bar = foo[i].getElementsByClassName('baz');
   // bar is now a nodelist of all elements with class 'baz' in the dom tree under foo[i].

}

Если бы вы использовали jquery, это было бы так просто:

$('bar .baz').each(function() {
   $(this). etc...;
});
2 голосов
/ 20 февраля 2012

Насколько мне известно, getElementsByClassName - это HTML5 (в соответствии с этим: https://developer.mozilla.org/en/DOM/document.getElementsByClassName), и поэтому его использование означает, что не все браузеры будут поддерживать его.

Когда вы захватываете Элемент из dom, как и в document.getElementsByTagName, вы получаете тот же метод getElementsByTagName, и вы можете сделать:по этому массиву и найдите подходящие классы.

Кроме того, я рекомендую использовать библиотеки javascript, такие как jQuery или MooTools, это облегчит вашу жизнь.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...