0

我在下面有一个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 中。

给我一个 ID 为#following$(this).parent()的 div。

但是我不能选择 #profile 或 .box 使用parents(). 做 aparent().parent()也给出零?

是否有某些原因我无法通过 section 标签向上遍历 DOM 树?

4

2 回答 2

1

对我来说似乎很好:alert($("a").parent().parent().attr("id"))返回“个人资料”。见:http: //jsfiddle.net/TZawQ/

于 2012-05-14T03:15:40.847 回答
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

我们需要看看你是如何选择这些元素的。

于 2012-05-14T03:17:53.667 回答