2009-08-19 9 views
1

私は次のようなコードがあります:私はクラスのリンク2のクリックイベントで、現在午前と仮定すると、jquery内を移動するdom?

<div class="class1"> 
    <a class="link1" src="...">...</a> 
</div> 
<div class="class2"> 
    <a class="link2" src="...">...</a> 
</div> 

を、どのように私はリンク1ハイパーリンクのsrc値を取得しますか?これらは動的に生成されるので、このコードのインスタンスが多数ある可能性がありますので、$ thisからlink1に移動するためにdomをトラバースする必要があります。ありがとう。

答えて

4
$('a.link2').click(function() { 
    console.log($(this).parent().prev('div.class1').children('a.link1')); 
}); 
1

柔軟なソリューションは、あなたがクラス1とクラス2を呼び出しているdiv要素に共通の識別子を追加した可能性がある場合、あなたはあなたの親の前の兄弟を見つけることができます。たとえば、代わりにHTMLを、あなたが持っている可能性があり:

<div class="class1 someClass"> 
    <a class="link1 someLink" src="...">...</a> 
</div> 
<div class="class2 someClass"> 
    <a class="link2 someLink" src="...">...</a> 
</div> 

そして、すべてのリンクのonclickの機能では、例えば、

$('a.someLink').click(function() { 
    var $someContainer = $(this).parents('someClass:first'); 
    var $prevContainer = $someContainer.prev(); 
    // now you can work with $prevContainer ... 
}); 

あなたはもちろん最初かどうかをチェックしたいと思うが"前の"兄弟は本当に存在するかどうかは分かりません。あなたは次のものを見つけることに適応することができます。

幸運!
-f!

+0

私はおそらくあなたはhrefを得る方法を尋ねることを意味すると思います、srcではありませんか?この場合、$ prevContainer.find( 'a')。attr( 'href') – Funka

関連する問題