web-dev-qa-db-ja.com

jQuery:要素のクラスとIDを同時に選択しますか?

クラスとIDを同時に選択したいリンクがいくつかあります。

これは、2つの異なる動作があるためです。リンクのクラスが1つのクラス名を取得すると、それらは1つの方法で動作し、同じリンクのクラスが別のクラス名を取得すると、動作が異なります。クラス名はjqueryで切り替えられます。

そのため、リンククラスとIDを同時に選択できる必要があります。これは可能ですか?

私はもう試した:

 $("a .save #country")

結果なし。

151
ajsie

できるよ:

$("#country.save")...

OR

$("a#country.save")...

OR

$("a.save#country")...

あなたが好むように。

そのため、はい、ID and class(および潜在的にタグ名とあなたが投入したいものすべて)に一致しなければならないセレクタを指定できます。

270
cletus

アレックスが提供した答えが私のために働いただけで、答えとして強調されているものではないことを付け加えます。

これは私には役に立たなかった

$('#country.save') 

しかし、これはそうしました:

$('#country .save') 

私の結論は、スペースを使用することです。現在、私が使用しているjQueryの新しいバージョン(1.5.1)なのかどうかはわかりませんが、とにかくこれが私が経験した同様の問題を抱えている人に役立つことを願っています。

編集:説明のための完全なクレジット(アレックスの答えへのコメント)は、次のように言っているFelix Klingに送られます。

スペースは子孫セレクター、つまりA Bは「Aに一致する要素の子孫であるBに一致するすべての要素を一致させる」ことを意味します。 ABは「AとBに一致するすべての要素を選択する」ことを意味します。だから、それは本当にあなたが達成したいものに依存しています。 #country.save#country .saveは同等ではありません。

39
Nikola

Idとクラス識別子の間にスペースを追加すると機能します

$("#countery .save")...

7
Alex

最終的にはcssと同じルールが適用されます。

だから このリファレンス は価値のある使い方になると思う。

2
getack

このコードはどうですか?

$("a.save#country")
1
Pekka 웃
$("a.save, #country") 

「a.save」クラスと「country」idの両方を選択します。

1
o.k.w