2
<div class="testClass">
    <div>
        <select name="specialName123">
        </select>
    </div>
</div>

<div class="testClass">
    <div>
        <span id="someSpan">
            <select name="specialName123">
            </select>
        </span>
    </div>
</div>

如何根据它们具有“testClass”类并且名称中包含“123”的选择这一事实在我的页面上选择上述两个div?

我知道我可以找到所有这样的选择$('select[name*="123"]'),并且可以$(".testClass")用来选择适当的 div。但是我如何以我需要的方式将这些组合在一起呢?

4

3 回答 3

2

您可以使用closest方法:

$('select[name*="123"]').closest('.testClass')

演示

或者:

$('.testClass').has("select[name*=123]")

演示

于 2012-07-29T14:42:51.493 回答
1

为什么不:

$('.testClass select[name*="123"]')

它会匹配名称包含 123 的选择框的 testclass 的任何子级(任何深度)。

于 2012-07-29T14:46:41.047 回答
0

您还可以使用该find方法获取 的所有后代testClass,然后您可以通过选择器对其进行过滤:

$('.testClass').find('select[name*="123"]');

于 2012-07-29T14:48:44.797 回答