如何通过标签名称获取元素或元素列表。举个例子,我想要来自的所有元素 <h1></h1>. ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

有帮助吗?

解决方案

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')). 。也许是polyfill Array.from() 如果您的浏览器尚不支持。我可以推荐 https://polyfill.io/v2/docs/ 非常(不以任何方式隶属)

其他提示

使用 $$() 并传入 CSS 选择器。

阅读 原型 API 文档 $$()

这为您提供了超越标签名称的更多功能。您可以按班级、父子关系等进行选择。它支持的 CSS 选择器比普通浏览器预期的要多。

马蒂亚斯·凯斯滕霍尔兹:

getElementsByTagName 返回一个 NodeList 对象,它类似于数组,但不是数组,而是一个实时列表。

var test = document.getElementsByTagName('a');
alert(test.length); // n
document.body.appendChild(document.createElement('a'));
alert(test.length); // n + 1

你也可以使用 $$(tag-name)[n] 从集合中获取特定元素。

如果您使用 getElementsByTagName,则需要将其包装在 $A() 中以返回数组。但是,您可以按照 nertzy 的建议简单地执行 $$('a') 。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top