Jquery .next(输入OR textarea)

时间:2011-10-08 21:31:51

标签: jquery tabindex

我正在弄乱这段简单的代码:

$(this).next('input').focus();

我想让它选择下一个(input OR textarea),以先到者为准 - 我该怎么做?

作为替代方案,我怎样才能让它只关注tabindex中的下一个项目?

修改

因为下一个输入/ tabindex并不总是在$(this)之后,我怎样才能轻松遍历兄弟姐妹列表直到找到下一个匹配项?

2 个答案:

答案 0 :(得分:7)

使用:input选择所有输入,textarea,select和按钮元素。

$(this).next(':input').focus();

jsFiddle

如果下一个输入不是兄弟,这似乎有效...... 对于此示例,请在文本框中单击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();
    });
});

jsFiddle2

答案 1 :(得分:6)

$(this).next('input,textarea').focus();

但只有当下一个输入/ textarea是this之后的兄弟姐妹时,它才会起作用。

或者,你可以从jQuery UI use the :focusable selector

Sample fiddle - 按Enter键以关注下一个输入

如果当前没有通过绑定document本身并使用e.target选择任何输入,您也可以target the first input