私は2つのクラスを持つすべての要素を選択したいa
とb
。
<element class="a b">
つまり、両方のクラスを持つ要素のみです。
使用する$(".a, .b")
と結合が得られますが、交差点が必要です。
私は2つのクラスを持つすべての要素を選択したいa
とb
。
<element class="a b">
つまり、両方のクラスを持つ要素のみです。
使用する$(".a, .b")
と結合が得られますが、交差点が必要です。
回答:
両方のクラス(論理ANDなどの交差)を持つ要素のみを一致させる場合は、間にスペースを入れずにセレクターを一緒に記述します。
$('.a.b')
順序は関係ないため、クラスを交換することもできます。
$('.b.a')
したがってdiv
、IDがの要素a
をクラスb
およびと一致させるにはc
、次のように記述します。
$('div#a.b.c')
(実際には、ほとんどの場合、その特定を取得する必要はありません$('#a')
。通常、IDまたはクラスセレクターだけで十分です。)
b
とc
が動的に追加され、要素がそれらのクラスを持っている場合にのみ要素を選択したい場合に便利です。
.a .b
、class b
を持つ要素の子孫であるclass を持つ要素を検索しますa
。のようなものは、要素内にある要素div a
のみを返しa
ます。div
これを行うには、次のfilter()
関数を使用します。
$(".a").filter(".b")
.a
、元の.a
セットにも属しているさまざまな任意のクラスに基づいて複数回フィルタリングする必要がある場合にも、より効率的です。
ケースについて
<element class="a">
<element class="b c">
</element>
</element>
.a
との間にスペースを入れる必要があります.b.c
$('.a .b.c')
$('.a .c.b')
も機能しますか?
$('.a > element')
あなたが抱えている問題は、あなたがを使用しているということですがGroup Selector
、あなたはMultiples selector
!具体的には、を使用$('.a, .b')
する必要があるのに対し、を使用しています$('.a.b')
。
詳細については、以下のセレクタを組み合わせるさまざまな方法の概要をご覧ください。
すべての<h1>
要素およびすべての<p>
要素およびすべての<a>
要素を選択します。
$('h1, p, a')
のすべての<input>
要素を選択しtype
text
、クラスcode
とred
:
$('input[type="text"].code.red')
<i>
要素内のすべての要素を選択します<p>
。
$('p i')
<ul>
要素の直接の子であるすべての要素を選択します<li>
。
$('li > ul')
<a>
要素の直後に配置されているすべての要素を選択します<h2>
。
$('h2 + a')
<span>
要素の兄弟であるすべての要素を選択します<div>
。
$('div ~ span')
$('.a .b , .a .c').css('border', '2px solid yellow');
//selects b and c
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="a">a
<div class="b">b</div>
<div class="c">c</div>
<div class="d">d</div>
</div>
バニラJavaScriptソリューション:-
document.querySelectorAll('.a.b')
グループセレクター
body {font-size: 12px; }
body {font-family: arial, helvetica, sans-serif;}
th {font-size: 12px; font-family: arial, helvetica, sans-serif;}
td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
これになる:
body, th, td {font-size: 12px; font-family: arial, helvetica, sans-serif;}
したがって、あなたの場合、あなたはグループセレクターを試しましたが、その交差点は
$(".a, .b")
代わりにこれを使用してください
$(".a.b")
好きなgetElementsByClassName()
方法でメソッドを使うことができます。
var elems = document.getElementsByClassName("a b c");
elems[0].style.color = "green";
console.log(elems[0]);
<ul>
<li class="a">a</li>
<li class="a b">a, b</li>
<li class="a b c">a, b, c</li>
</ul>