0

我只想遍历包含特定元素作为后代节点的父元素。

例如:

<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 进行迭代。

提前致谢

4

2 回答 2

4

您可以使用 jQuery 的:has()伪选择器:

$('.field:has(.text)')

由于它是一个非标准选择器,因此与常规选择器相比它会很慢,因此如果您要迭代大量元素,请记住这一点。

于 2013-03-31T04:07:43.577 回答
0

您可以使用 .parents()

$('input[type=text]').parents('.field').each(function(){
//do your stuff
})

示例 - http://jsfiddle.net/dYKRz/

于 2013-03-31T04:13:35.010 回答