2012-07-27 81 views
0
alert($('.input-large[name="name"]:parent:parent').html()); 

我的HTML是:jQuery的組合多個選擇

<div class="control-group"> 
    <label for="name" class="control-label">Clinic Name</label> 
    <div class="controls"> 
     <input type="text" name="name" id="name" class="input-large" value=""> 
    </div> 
</div> 

我在警報越來越空。如何找到輸入元素父級的父級?

+0

應該總是通過選擇ID,只要有可能,所以你可以直接跳到#name,而不是像Zoltan Toth在他的回答中所建議的那樣使用該類。 – jholloman 2012-07-27 19:33:29

回答

2

嘗試

alert($('#name').parent().parent().html()); 
+0

謝謝,它的工作原理。但是我不能以這種方式組合多個選擇器嗎? – Shwetanka 2012-07-27 19:33:54

+0

這是您會得到的最佳答案。如果您更改名稱或DOM結構,使用'#'選擇效率更高,並且可以節省更多麻煩。 – 2012-07-27 19:33:59

+0

如果我正確理解你,你希望它適用於所有'input-large [name = name]'元素?看到我的帖子下面。 – 2012-07-27 19:35:07

1

對於所有input-large[name=name]元素:

$(".input-large[name=name]").each(function(){ 
    alert($(this).parent().parent().html()); 
}); 

但話又說回來,這會給你爲每個實例的警報。 。

1

你可以做父()父()鏈其他人一樣,或者也只是讓家長選擇進入。家長()用於清潔鏈,就像這樣:

alert($('#name').parents('.control-group').html()); 
+0

這對我不起作用。它說空。 – Shwetanka 2012-07-27 19:44:42

+0

哎呦,這是父母(),不是父母():)。這裏是一個雅的提琴手:http://jsfiddle.net/FjZrF/ – 2012-07-27 19:47:41