1

クリックされたボタンの次のテキストエリアにフォーカスするにはどうすればよいですか?

http://jsfiddle.net/infatti/GmPCz/

$('.add').click(function(){
  $(this).closest('div').next('textarea:visible').focus();
});
4

3 に答える 3

2

closest()現在の要素から開始し、セレクターに一致する最初の要素を DOM で検索します。必要な div はリンクの祖先ではなく、兄弟です。

http://jsfiddle.net/8TVxd/

$('.add').click(function(){
    $(this).next('div').find('textarea:visible:first').focus();
});
于 2013-09-24T17:26:50.010 に答える
1

次のものを見つけてdiv、最初に利用可能なものに焦点を合わせてみてくださいtextarea。また、アンカー タグのデフォルトの動作を次のようにオーバーライドしてpreventDefault()ください。

$('.add').click(function(event){
  event.preventDefault();
  $(this).next('div').find('textarea:visible').first().focus();
});

JSFiddle

于 2013-09-24T17:28:34.277 に答える
0

これはそれを行う必要があります:

$(this).next().find('textarea').filter(':visible').first().focus();

jsFiddle が更新されました

.filter(':visible')and.first()をセレクターに含める代わりに使用するのは、パフォーマンス上の理由によるものです。最初の単一のクエリから既存の結果セットを切り詰めるだけなので、追加のクエリを実行する必要がなくなります。

性能差の説明例

于 2013-09-24T17:27:41.960 に答える