2012-02-20 17 views
1

contains(* =)とimg = equals(=)を使用してIDを取得するif文を作成します。何が間違っているのでしょうか?複数の変数(特定の文字列)に基づいてJQueryを選択

if($("div[id*='Point_'], [img='gray.png']").length > 0) { 

// do something gray 
} 

if($("div[id*='Point_'], [img='red.png']").length > 0) { 

// do something red 
} 
<div id="Point_1"> 
    <img src="gray.png"> 
</div> 
<div id="Point_2"> 
    <img src="red.png"> 
</div> 
+0

引用符と二重引用符の切り替えを試してみましたか?それが重要かどうかはわかりませんが、jqueryページはすべて属性値を二重引用符で囲んでいます。 – jbabey

+0

@jbabeyあなたが一貫している限り、それは重要ではありません。全体のセレクタが二重引用符で囲まれている場合は、アトリビュート値が一致するように単一引用符を使用します(または値に応じてアスタリスクを使用しないでください)。全体セレクタが単一引用符で囲まれている場合は、二重引用符を使用します。個人的には、Javascript文字列を一重引用符で囲む方が好きです(DOMノードを動的に作成して追加するなど)必要があればHTMLをコピーする方がはるかに簡単です。 –

+0

@AnthonyGrist私は単一引用符も好んでおり、情報に感謝します! – jbabey

答えて

4

属性セレクタのようなタグセレクタを使用しようとしています。 src属性がgray.pngに等しい<img>タグと一致させる場合は、正しいセレクタは$('img[src="gray.png"]')です。

また、これは正しいことかもしれませんが、jQueryセレクタのカンマはORのように動作しますので、id属性にテキストが含まれる<div>要素を教えてください'Point_' OR <img> srcが 'gray.png'と一致する要素。 "それがあなたが欲しいものなら、それでは。

しかし、あなたがやりたいことは「Point_の」を含むIDで<div>内にあるので、セレクタがあるべきgray.pngに等しいsrc<img>要素を選択している可能性が高いようだ:

$('div[id*="Point_"] img[src="gray.png"]') 
+0

ありがとう、完璧な意味があります。 – user1040259

2

あなたはあなたの文字列からカンマをドロップする必要がある特定の文字列を選択しようとしている場合。セレクタをコンマで区切ると、セレクタに基づいて複数の要素が選択されます。コンマはすべてのセレクタで一致を選択しません。 hereを参照してください。

関連する問題