我需要获取点击的超链接的父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