2012-05-14 2 views
0

オーバーステップすることはできません。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="delete" href="https://stackoverflow.com/users/testuser/unfollow">Unfollow</a> 
     </div> 
    </section> 
</div> 

その後、私はリンクへの応答にトリガを持っていると私は$(this)を持っています。私は、コンソールログを使ってDOMのこの時点でいることを確認できます。

$(this).parent()を実行すると、次のIDを持つdivが表示されます。

しかし、parents()を使用して#profileまたは.boxを選択することはできません。 parent().parent()を実行するとnilも得られますか?

セクションタグの上にDOMツリーをトラバースできない理由はありますか?

+0

問題を解明しました。私が示さなかった部分は、#次のdivが以前のステップで置き換えられたということでした。私は親全体を削除しているので、私はちょうどその部分を取り出し、それは正常に働いた。 –

答えて

1

$.closest()を使用してみてください:

もちろん
$(this).closest(".box"); 

この問題は少し疑わしいと思われます。私は正常に問題なく$.parents.box(および#profile)にアクセスすることができた:

$(".box").on("click", "a.btn.unfollow", function(e){ 
    e.preventDefault(); 
    $(this).parents(".box").css("background-color", "red"); 
}); 

http://jsbin.com/uranit/edit#javascript,html

私たちは、あなたがこれらの要素を選択歩き回ったかを確認する必要があると思います。

関連する問題