<div id="someId_123">
<img class"testClass"/>
</div>
JQueryを使用して、クラスに基づいてこの画像を選択し、divのIDに「123」が含まれているという事実に基づいて選択します。
<div id="someId_123">
<img class"testClass"/>
</div>
JQueryを使用して、クラスに基づいてこの画像を選択し、divのIDに「123」が含まれているという事実に基づいて選択します。
$("div[id*='123'] img.testClass")
使えるはずです'[id*="123"] > .testClass'
。は>
親子関係を指定します。
これでうまくいくと思います:
$("div[id*=123] img.testClass")
$(":div[id*=123] img.testClass");
ここに動作するjsFiddleがあります:http://jsfiddle.net/leniel/EdTF8/2/
HTML コードにもタイプミスがあります。
<img class"testClass"/>
次のようにする必要があります。
<img class="testClass"/>
jsFiddle が機能しない理由を突き止めるために数分を費やしました。=
クラス名の前に記号を付けなかったからです。
これにより、ID の任意の場所で 123 が検索され、クラス testClass で画像が取得されます。
$('[id*="123"] img.testClass')
動的にしたい場合は、次のようにします。
$('[id*="' + idNumber + '"] img.' + className)
これはどう:
$('img.testClass', '[id*="123"]')
まず、指定されたクラスですべての画像を取得し (すべてのノードを選択するよりも効率的)、特定の基準に一致する ID を持つ親の画像をフィルター処理します。
$('.testClass').filter(function(){ return this.parent().attr('id').match(/123/) })