希望我能够解释得很清楚。我做了
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];
但这似乎不是我需要做的。我只是不确定语法还是我需要做一些完全不同的事情?
答案 0 :(得分:3)
你几乎得到了它:
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...;
});
答案 1 :(得分:2)
据我所知,getElementsByClassName是HTML5(根据这个:https://developer.mozilla.org/en/DOM/document.getElementsByClassName),因此使用它意味着并非所有浏览器都支持它。
当您从dom中获取Element时,与document.getElementsByTagName一样,您将获得相同的方法getElementsByTagName,因此您可以执行以下操作: FOO [I] .getElementsByTagName( “...”) 对于所需元素的集合,您可以迭代该数组并搜索匹配的类。
另外,我建议使用jQuery或jo或MooTools这样的javascript库,它会让你的生活更轻松。