我想仅通过包含特定元素作为后代节点的父元素进行迭代。
例如:
<div class="field">
<input type="text" />
</div>
<div class="field">
<input type="button" />
</div>
<div class="field">
<input type="text" />
</div>
我知道使用xpath,可以使用div[@class = 'field' and input[@type = 'text']]
使用jQuery,我想使用与div.field[input[type = 'text']]
类似的东西。
我知道的最近的选项是div.field > input[type = 'text']
,但这样我会迭代输入而不是div。
提前致谢
答案 0 :(得分:3)
您可以使用jQuery的:has()
伪选择器:
$('.field:has(.text)')
由于它是一个非标准选择器,与常规选择器相比它会很慢,所以如果你要迭代大量元素,请记住这一点。
答案 1 :(得分:0)
您可以使用.parents()
$('input[type=text]').parents('.field').each(function(){
//do your stuff
})