0

私はこれをしたい:

a1 = document.getElementsByClassName('classA');
a2 = document.getElementsByClassName('classB');
a3 = a1.concat(a2);

for (var i=0; i<a3.length; ++i) {

}

つまり、classA のすべての要素と classB のすべての要素を取得し、それらすべてを繰り返し処理できるようにそれらを結合します。getElementsByClassName は標準配列を返さないため、機能しません。

これは機能しますが、より賢明な方法が必要です。

var els = [];
var e1 = document.getElementsByClassName('classA');
var e2 = document.getElementsByClassName('classB');
[].forEach.call(e1, function(el) { els.push(el); });
[].forEach.call(e2, function(el) { els.push(el); });
4

2 に答える 2

5

最新のブラウザーでは、次を使用できます。

var a = document.querySelectorAll('.classA, .classB');

これにより、「classA」または「classB」を含むすべての要素が検索されます。詳細情報とブラウザの互換性表については、こちらを参照してください。

于 2013-10-14T23:20:09.703 に答える