我需要獲取點擊的超鏈接的父div。在下面的例子中,這將是'.link-container'
。但是,this.parent
或this.parents
不起作用。在jQuery中獲取HREF的父DIV
jQuery('.link-container a').live('click', function(e) {
e.preventDefault();
alert(this.parent);
});
關於如何得到這個的任何想法?
問候, 約翰
我需要獲取點擊的超鏈接的父div。在下面的例子中,這將是'.link-container'
。但是,this.parent
或this.parents
不起作用。在jQuery中獲取HREF的父DIV
jQuery('.link-container a').live('click', function(e) {
e.preventDefault();
alert(this.parent);
});
關於如何得到這個的任何想法?
問候, 約翰
你使用它錯了。您必須將this
包裝在jQ對象中。和家長是一個函數,所以你必須把它作爲parent()
:
$('.link-container a').on('click', function(e) {
e.preventDefault();
alert($(this).parent());
});
.live
已過時,使用.on
如果你正在使用jQuery版本1.7+或者使用.delegate
,在包裹this
jQuery的對象,然後使用jQuery的方法parent
或parents
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'));
});
Thx爲'.live'上的單挑。然而,'.on'從來沒有爲我工作過。我會在這方面開始另一篇文章。對於這一個,我有錨標記裏面的div和需要獲得相同的類。所以,我通過elclanrs – John 2012-02-20 08:12:07
約翰,使用原始的JavaScript性能this.parentNode
或jQuery的方法$(this).parent()
返回只包含一個節點(父節點的集合的jQuery對象。)
希望這有助於
假設你有一個父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
Thx稍微修改了代碼進行回覆。我略微修改了你的代碼來獲得類:'alert($(this).parent()。attr('class'));'。它爲我工作。 – John 2012-02-20 06:54:26
哦,是的,哈哈'警報($(this).parent())'會警告一個對象。 – elclanrs 2012-02-20 06:55:53