jquery父级、父级和最近的can';t选择或跨过区段标记

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=

我有一个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如下的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");
});