次のような場合:
<div class="apple-monkey"></div>
<div class="apple-horse"></div>
<div class="cow-apple-brick"></div>
最初の 2 つの DIV を見つけるには、次のセレクターを使用できます。
$("div[class^='apple-']")
ただし、次の場合:
<div class="some-other-class apple-monkey"></div>
<div class="apple-horse"></div>
<div class="cow-apple-brick"></div>
最初のdivのクラスは文字列として返され(私の考えでは)、実際には「apple-」ではなく「some-」で始まるため、2番目のDIVのみが見つかります。
これを回避する方法の 1 つは、starts with を使用せずに、代わりに contains を使用することです。
$("div[class*='apple-']")
問題は、私の例では 3 番目の DIV も選択されてしまうことです。
質問: jQuery では、クラス属性全体を文字列としてではなく、個々のクラス名に述語セレクターを使用する適切な方法は何ですか? クラスを取得して配列に分割し、正規表現を使用して各配列をループするだけですか? または、よりエレガントで簡潔な解決策はありますか?
ベストアンサー1
「apple-」で始まるクラスと「apple-」を含むクラス
$("div[class^='apple-'],div[class*=' apple-']")