如何通过标签名称获取元素或元素列表。例如,我想要<h1></h1>
的所有元素。
答案 0 :(得分:6)
document.getElementsByTagName('a')返回一个数组。点击此处了解更多信息:http://web.archive.org/web/20120511135043/https://developer.mozilla.org/en/DOM/element.getElementsByTagName
修正案:如果你想要一个真正的数组,你应该使用像Array.from(document.getElementsByTagName('a'))
这样的东西,或者这些天你可能想要Array.from(document.querySelectorAll('a'))
。如果您的浏览器还不支持,可能会填充Array.from()
。我可以非常推荐https://polyfill.io/v2/docs/(不以任何方式附属)
答案 1 :(得分:4)
使用$$()
并传入CSS选择器。
阅读Prototype API documentation for $$()
除了标签名称之外,这还为您提供更多功能。您可以按类,父/子关系等进行选择。它支持的CSS选择器比普通浏览器所需的更多。
答案 2 :(得分:1)
Matthias Kestenholz:
getElementsByTagName返回一个NodeList对象,它类似于数组,但不是数组,它是一个实时列表。
var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1
答案 3 :(得分:1)
您还可以使用$$(tag-name)[n]
从集合中获取特定元素。
答案 4 :(得分:0)
如果使用getElementsByTagName,则需要将其包装在$ A()中以返回Array。但是,您可以像nertzy建议的那样简单地执行$$('a')。