2011-12-28 14 views
0
<p class="current" style="display: block; ">MD</p> 
<input type="text" class="hidden" value="MD" style="display: none; "> 
<p class="small hidden" style="display: none; ">MD, MBBS etc.</p> 
<a class="save-field-data btn hidden" data-id="medical_degree" href="#" style="display: none; ">Save</a> 

上記は私のHTML DOM要素を説明しています。 class"save-field-data" classcurrentのテキストを設定するにはどうすればよいですか?jquery dom navigation

答えて

1

.prevAll()はこのような状況で役立つはず:

$('.save-field-data').bind('click', function() { 
    $(this).prevAll('.current').eq(0)... 
}); 

を私がクリックした.save-field-data要素の兄弟であるいくつかの.current要素がある中で、ケース最初のマッチを選択するように.eq(0)を追加しました。 .prevAll()ため

ドキュメント:http://api.jquery.com/prevall

注:.prevAll().siblings()の違いは.prevAll()のみ現在の選択の前に兄弟要素を検索し、彼らは現在の前か後に来る場合.siblings()はすべての兄弟に関係なく選択するということです選択。

0

は、私がここにもオフイム場合は知らないが、あなたはオールウェイズ

$(".current").html("your text"); 

のようなクラスで設定することができますまたはあなたが最も近い

$(this).closest(".current").html("your text"); 
+2

[ 'closest'](HTTPをしたい場合: //api.jquery.com/closest/)は要素の親を検索し、兄弟は検索しません。 –

2
$('a.save-field-data').click(function(){ 
    $(this).siblings('p.current').html(' ... your html here ... '); 
}); 
+0

'$($ this).siblings( 'p.current')[0])' $(this).siblings( 'p.current') ' –