6

次の単純な HTML では、すべての要素を class1 ではなく class2 で取得したいと考えています。

<li class="class1 class2"></li>
<li class="class1 class3"></li>
<li class="class1 class4"></li>

を使用することで、すべての要素を取得し、特定のクラスが存在するかどうかを確認しgetElementsByClassName('class1')て要素を削除することができます。

反復せずにこれを行うより良い方法はありますか?

複数のクラスを持つ要素の取得に関するこの興味深い投稿を見つけたので、あえて質問します。次のようなものはありますか: document.getElementsByClassName("class1 !class2")?

PS: jQuery は使いたくありません。

4

2 に答える 2

15

ますます互換性 のあるを使用してもかまわない場合は、次の方法.querySelectorAll()で可能です。

  var getClassOne = document.querySelectorAll( '.class1:not(.class2)' );

フィドル: http://jsfiddle.net/5tSGv/52/

それがなければ、どういうわけかclassNameを反復する必要があります

于 2013-10-21T11:04:43.407 に答える