我正在尝试在体内获取以下所有标签(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中的顺序来获取元素。
答案 0 :(得分:3)
如果浏览器支持querySelectorAll
[MDN],您可以执行以下操作:
var allTags = document.querySelectorAll('input, a, button');
The elements are returned in document order。有关支持querySelectorAll
的浏览器列表,请参阅caniuse.com。
在所有其他浏览器中,您必须使用getElementsByTagName
,但我认为按顺序获取元素非常困难。
您还可以考虑使用选择器引擎,例如Sizzle(jQuery使用的引擎)。或者,如果您打算执行复杂的DOM操作,jQuery本身。
答案 1 :(得分:1)
您可以使用Array.concat
var allTags = inputtags.concat(atags, buttontags);