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()を実行すると nil も返されますか?

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 に答える