【发布时间】:2012-08-31 15:22:13
【问题描述】:
<div id="someId_123">
<img class"testClass"/>
</div>
使用 JQuery,我想根据其类以及 div 的 id 中包含“123”这一事实来选择此图像。
【问题讨论】:
标签: jquery html dom jquery-selectors selector
<div id="someId_123">
<img class"testClass"/>
</div>
使用 JQuery,我想根据其类以及 div 的 id 中包含“123”这一事实来选择此图像。
【问题讨论】:
标签: jquery html dom jquery-selectors selector
$("div[id*='123'] img.testClass")
【讨论】:
我认为这样可以:
$("div[id*=123] img.testClass")
【讨论】:
您应该可以使用'[id*="123"] > .testClass'。 > 指定父子关系。
【讨论】:
$(":div[id*=123] img.testClass");
这是一个有效的 jsFiddle:http://jsfiddle.net/leniel/EdTF8/2/
您的 HTML 代码中也有错字:
<img class"testClass"/>
应该是:
<img class="testClass"/>
我花了几分钟试图找出 jsFiddle 不工作的原因。只是因为你没有在类名前加上= 符号。
【讨论】:
这个怎么样:
$('img.testClass', '[id*="123"]')
【讨论】:
首先抓取指定类的所有图像(比选择所有节点更有效),然后过滤其父级具有符合特定条件的 id 的图像。
$('.testClass').filter(function(){ return this.parent().attr('id').match(/123/) })
【讨论】:
queryselector 方法将其通过管道传输,该方法是本机方法,运行速度更快。直到几天前我自己才知道,当时我很难学会(很多不投票,就像你已经收到的一样!)
$('#parent').find('.child') 比$('#parent > .child') 快得多。
这将在 ID 中的任意位置搜索 123,并使用类 testClass 抓取图像。
$('[id*="123"] img.testClass')
如果您希望它是动态的,只需执行以下操作:
$('[id*="' + idNumber + '"] img.' + className)
【讨论】: