2013-03-31 167 views
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。

在此先感謝

回答

3

您可以使用jQuery的:has()僞選擇:

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

因爲它是一個非標準的選擇,它會比一般選擇是緩慢的,所以記住這一點如果你迭代了大量的元素。

+2

關於性能,'has'方法比'has'選擇更快。 – undefined

+0

這就是我正在尋找的答案!謝謝 – w35l3y

0

可以使用。家長()

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

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

+0

有替代品總是好的。謝謝 – w35l3y