クリックされたボタンの次のテキストエリアにフォーカスするにはどうすればよいですか?
http://jsfiddle.net/infatti/GmPCz/
$('.add').click(function(){
$(this).closest('div').next('textarea:visible').focus();
});
クリックされたボタンの次のテキストエリアにフォーカスするにはどうすればよいですか?
http://jsfiddle.net/infatti/GmPCz/
$('.add').click(function(){
$(this).closest('div').next('textarea:visible').focus();
});
closest()
現在の要素から開始し、セレクターに一致する最初の要素を DOM で検索します。必要な div はリンクの祖先ではなく、兄弟です。
$('.add').click(function(){
$(this).next('div').find('textarea:visible:first').focus();
});
次のものを見つけてdiv
、最初に利用可能なものに焦点を合わせてみてくださいtextarea
。また、アンカー タグのデフォルトの動作を次のようにオーバーライドしてpreventDefault()
ください。
$('.add').click(function(event){
event.preventDefault();
$(this).next('div').find('textarea:visible').first().focus();
});
これはそれを行う必要があります:
$(this).next().find('textarea').filter(':visible').first().focus();
.filter(':visible')
and.first()
をセレクターに含める代わりに使用するのは、パフォーマンス上の理由によるものです。最初の単一のクエリから既存の結果セットを切り詰めるだけなので、追加のクエリを実行する必要がなくなります。