在jQuery中获取HREF的父DIV

时间:2012-02-20 06:32:55

标签: jquery

我需要点击超链接的父div。在下面的示例中,这将是'.link-container'。但是,this.parentthis.parents不起作用。

jQuery('.link-container a').live('click', function(e) {
e.preventDefault();
alert(this.parent);
});

关于如何获得这个的任何想法?。

此致 约翰

5 个答案:

答案 0 :(得分:3)

你错了。您必须将this包装在jQ对象中。父是一个函数,因此您必须将其称为parent()

$('.link-container a').on('click', function(e) {
    e.preventDefault();
    alert($(this).parent());
});

答案 1 :(得分:0)

尝试:

$(this).parent()

http://api.jquery.com/parent/

答案 2 :(得分:0)

不推荐使用

.live,如果您使用的是jquery版本1.7+,则使用.on,或者使用.delegate,在jquery对象中包装this然后使用jquery方法parentparents

jQuery(document).delegate('.link-container a','click', function(e) {
e.preventDefault();
alert($(this).parents('.link-container'));
});

如果锚标签位于.lin-container之内

<div class='link-container'>
 <a href='#'>stack overflow</a>
</div>

您可以使用closest

jQuery(document).delegate('.link-container a','click', function(e) {
    e.preventDefault();
    alert($(this).closest('.link-container'));
    });

答案 3 :(得分:0)

John,使用原始javascript属性this.parentNode或jQuery方法$(this).parent(),它返回一个jQuery对象,该对象只包含一个节点(父节点)的集合。

答案 4 :(得分:0)

希望这有帮助

假设您有父div

<div id="parent">
  <a href="javascript:void(0)" class="link">Click me</a>
</div>

$(document).ready(function(){
   $(".link").click(function(){
     alert(this.parentNode.id);
   });
});

我通常更喜欢parentNode而不是父