找到祖父div属性

时间:2012-06-13 14:50:58

标签: jquery html

我有以下HTML

<div class="myclass" value="1">
    <div>
      <div class="myclass" value="">
         <a class="popup" id="12" target="_blank" href="xxx">popup</a>
      </div>
     </div>
</div>

我在弹出类上使用jQuery和click事件,我试图通过类“myclass”得到祖父div的值,该示例中的值为“1”。我试过这个,但它让我'未定义'

$('.popup').click(function(){
    alert($(this).parent('.myclass').parent('.myclass').attr('value')
});

4 个答案:

答案 0 :(得分:4)

它是一个不平衡的括号问题。 您需要关闭提醒);或使用closest代替parent

alert($(this).closest('.myclass').closest('.myclass').attr('value'));

答案 1 :(得分:2)

我会使用parents代替parentparent仅查看直接父级,并且由于两个.myclass div之间有<div>,因此选择器失败。

$('.popup').click(function(){
    var val = $(this).parents('.myclass').parents('.myclass').attr('value');
    alert(val);
});​

因此,在您的示例中,第二个parent失败,因为选择器不匹配,因为parent仅查看直接父级。来自parent documentation

  

.parents()和.parent()方法类似,只是后者只在DOM树中向上移动一层。

您也可以将选择器简化为:

var val = $(this).parent().parents('.myclass').attr('value');

可以找到一个工作示例here on jsFiddle

答案 2 :(得分:0)

这个怎么样?

$('.popup').click(function(e){
    alert($(this).parents('.myclass').last().attr('value')
});

答案 3 :(得分:0)

在我的情况下,此页面上的所有代码都不起作用。 但这项工作! var result = $(this).closest('。news')。attr('index');