2012-07-27 43 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