以递归方式搜索某个班级的所有div的孩子

时间:2012-07-29 14:41:11

标签: jquery

<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。但是我如何以我需要的方式将它们组合在一起呢?

3 个答案:

答案 0 :(得分:2)

您可以使用closest方法:

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

DEMO

或:

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

DEMO

答案 1 :(得分:1)

为什么不:

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

它匹配测试类(任何深度)的任何子级,它是名称包含123的选择框。

答案 2 :(得分:0)

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

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