2012-02-16 8 views
0

を選択する方法、jQueryのセレクタ - [OK]を次の列のテキストエリア

はここexampeです:

<table> 
    <tr> 
     <td> 
      <type="button" id="mybutton" value="insert"> 
     </td> 
     <td> 
      <textarea>My Text</textarea> 
     </td> 
    </tr> 
</table> 

私は私が私のボタンをクリックするとテキストエリアの値を変更する必要があります。値はセット変数から来ます。このコードには、参照する他のIDまたはクラスはありません。だから私は

jQuery('#mybutton').click(function(){ 

    jQuery(this).parent().next()...????; 

}); 

次これは、次の列に私を取得しますが、私はそこからtextareaを選択する方法がわかりません。

child()、もう1つはnext()でしたが、運がありませんでした。

答えて

3

我々は.children()を使用jQueryのに子要素を選択するには:.children('textarea')

:あなたは .children()関数呼び出しでセレクタとして textareaを追加しない限り、これは、同様 textareaに、すべての兄弟要素を選択すること

jQuery('#mybutton').click(function(){ 
    jQuery(this).parent().next().children().val(some_variable); 
}); 

注意また.closest().find()を使用することができ

jQuery('#mybutton').click(function(){ 
    jQuery(this).closest('tr').find('textarea').val(some_variable); 
}); 

.closest()は、セレクタと一致する最初の祖先要素を見つけ、findは、ルート選択の子孫要素内のセレクタを見つけます。

屋のためのいくつかのドキュメント:

+0

ありがとうございます。あなたが言ったのと同じことを試みましたが、私は子供の代わりに子供を持っていました。 –

1

この表が将来変更される可能性がある場合は、あいまいではないようにしてください。ここで何をしたいで、もう少し具体的な何かがある:

$(this).closest('table').find('textarea').val('your val'); 

さらに詳しい情報:

.closest()
.find()

0

このようなものを使用してみてください:

jQuery(this).parent().next().find('textarea').val('CHANGE VALUE');; 
0

これを実現する方法はたくさんあります同じこと。以下は1つです

$(this).parent().siblings().find('textarea').val("New Text");