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.comを参照してくださいquerySelectorAll

他のすべてのブラウザーでは、使用する必要があります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 に答える