我在下面有一个DOM结构:
<div class='box'>
<section id="profile">
<h1>testuser</h1>
<div id="following">
<a class="btn unfollow" style="width: 180px;" rel="nofollow" data-remote="true" data-method="delete" href="/users/testuser/unfollow">Unfollow</a>
</div>
</section>
</div>
然后我对链接的响应有一个触发器,我有一个$(this)
。我可以通过一些控制台记录确认我在DOM中的这一点。
做一个$(this).parent()
给我一个id为#following的div。
但是我无法使用parents()
选择#profile或.box。做一个parent().parent()
也给了一个零?
是否有某些原因我无法通过section标签遍历DOM树?
答案 0 :(得分:1)
对我来说似乎很好:alert($("a").parent().parent().attr("id"))
会返回“个人资料”。请参阅:http://jsfiddle.net/TZawQ/
答案 1 :(得分:1)
尝试使用$.closest()
:
$(this).closest(".box");
当然这个问题似乎有些可疑。我能够.box
成功访问#profile
{和$.parents
}而没有问题:
$(".box").on("click", "a.btn.unfollow", function(e){
e.preventDefault();
$(this).parents(".box").css("background-color", "red");
});
http://jsbin.com/uranit/edit#javascript,html
我们需要看看你如何选择这些元素。