jquery父级、父级和最近的can';t选择或跨过区段标记
我有一个DOM结构如下:jquery父级、父级和最近的can';t选择或跨过区段标记,jquery,Jquery,我有一个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=
<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如下的div
但是,我无法使用parents()
选择#profile或.box。做一个parent()。parent()
也会得到零
有什么原因使我无法在节标记上遍历DOM树吗?我觉得很好:
警报($(“a”).parent().parent().attr(“id”)
返回“profile”。请参阅:尝试使用$.closest()
:
当然,这个问题似乎有点可疑。我能够使用$成功访问.box
(和#profile
)。家长
没有问题:
$(".box").on("click", "a.btn.unfollow", function(e){
e.preventDefault();
$(this).parents(".box").css("background-color", "red");
});
我们需要看看您是如何选择这些元素的。解决了这个问题。我没有展示的部分是,在前面的步骤中替换了下面的div。因为我删除了整个家长,所以我只删除了那个部分,效果很好。
$(".box").on("click", "a.btn.unfollow", function(e){
e.preventDefault();
$(this).parents(".box").css("background-color", "red");
});