0

我正在尝试在正文中获取以下所有标签(INPUT、A 和 BUTTON)有没有一种方法可以做到这一点,而不必使用 javascript 遍历正文中的所有标签

var allInputTags = document.body.getElementsByTagName('*');

我正在考虑做类似的事情

var inputtags = document.body.getElementsByTagName('INPUT');
var atags = document.body.getElementsByTagName('A');
var buttontags = document.body.getElementsByTagName('BUTTON');

var allTags = inputtags + atags + buttontags; 

但我认为这样我不会按照它们出现在 Body 中的顺序获取元素。

4

2 回答 2

3

如果浏览器支持querySelectorAll [MDN],你可以这样做:

var allTags = document.querySelectorAll('input, a, button');

元素按文档顺序返回。有关支持的浏览器列表,请参见caniuse.comquerySelectorAll

在所有其他浏览器中,您必须使用getElementsByTagName,但我认为要按顺序排列元素将非常困难。

您还可以考虑使用选择器引擎,例如Sizzle(jQuery 使用的引擎)。或者如果你打算做复杂的 DOM 操作,jQuery本身。

于 2012-10-14T18:00:46.903 回答
1

您可以使用 Array.concat

var allTags = inputtags.concat(atags, buttontags); 
于 2012-10-14T18:00:11.270 回答