我弄乱了这个简单的代码行:
$(this).next('input').focus();
我想让它选择下一个(input OR textarea)
,以先到者为准 - 我该怎么做?
作为替代方案,我怎样才能让它简单地关注下一个项目tabindex
?
编辑
因为下一个 input/tabindex 并不总是紧随其后$(this)
,我怎样才能轻松地遍历兄弟姐妹列表,直到找到下一个匹配项?
使用:input
which 选择所有输入、文本区域、选择和按钮元素。
$(this).next(':input').focus();
如果下一个输入不是同级输入,这似乎可行...对于此示例,单击带有 的文本框,id="test"
它将focus
在下一个:input
元素上。
<input type="text" value="hello world2"/>
<input type="text" value="hello world3"/>
<div>
<input type="text" id="test"/>
</div>
<div>
<div>Hi</div>
</div>
<textarea>found me</textarea>
<input type="text" value="hello world"/>
$(document).ready(function(){
$('#test').click(function(){
var c = $(this).parents().nextAll(':input:first').focus();
});
});
$(this).next('input,textarea').focus();
但它只有在下一个输入/文本区域是紧随其后的兄弟时才有效this
。
或者,您可以使用:focusable
jQuery UI中的选择器。
小提琴示例- 按 Enter 键聚焦下一个输入
如果当前没有选择任何输入,您还可以通过绑定到自身并使用来定位第一个输入。document
e.target