2012-02-20 55 views
1

我需要獲取點擊的超鏈接的父div。在下面的例子中,這將是'.link-container'。但是,this.parentthis.parents不起作用。在jQuery中獲取HREF的父DIV

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

關於如何得到這個的任何想法?

問候, 約翰

回答

3

你使用它錯了。您必須將this包裝在jQ對象中。和家長是一個函數,所以你必須把它作爲parent()

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

Thx稍微修改了代碼進行回覆。我略微修改了你的代碼來獲得類:'alert($(this).parent()。attr('class'));'。它爲我工作。 – John 2012-02-20 06:54:26

+0

哦,是的,哈哈'警報($(this).parent())'會警告一個對象。 – elclanrs 2012-02-20 06:55:53

0

.live已過時,使用.on如果你正在使用jQuery版本1.7+或者使用.delegate,在包裹this jQuery的對象,然後使用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')); 
    }); 
+0

Thx爲'.live'上的單挑。然而,'.on'從來沒有爲我工作過。我會在這方面開始另一篇文章。對於這一個,我有錨標記裏面的div和需要獲得相同的類。所以,我通過elclanrs – John 2012-02-20 08:12:07

0

約翰,使用原始的JavaScript性能this.parentNode或jQuery的方法$(this).parent()返回只包含一個節點(父節點的集合的jQuery對象。)

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