当用户退出输入字段时,我试图获取下一个输入字段的id:
$("input").blur(function(){
var theid = $(this).attr('id');
var thefield = $(this).nextAll('input').first().attr('id');
alert(thefield);
});
目前它返回undefined。 HTML代码是:
<table><tr>
<td>Number</td><td>Name</td>
<tr><td>1 <input type='text' name='deltagernummer[]' value='' size='6' id='r0' tabindex='1' /></td>
<td><input type='text' name='deltagernavn[]' value='' id='rr0' tabindex='-1' /></td></tr>
<tr><td>2 <input type='text' name='deltagernummer[]' value='' size='6' id='r1' tabindex='2' /></td>
<td><input type='text' name='deltagernavn[]' value='' id='rr1' tabindex='-1' /></td></tr>
</table>
有什么问题?
答案 0 :(得分:6)
.nextAll()
扫描兄弟姐妹。虽然您的<input>
处于同一级别,但他们不是兄弟姐妹。要想象一下&#34;这里的伪HTML:
儿童和孩子的兄弟姐妹:
<parent>
<child>
<childs-sibling>
</parent>
你的案子:
<parent>
<descendant>
<input>
</descendant>
<descendant-sibling>
<totally-unrelated-to-input>
</descendant-sibling>
</parent>
你可以做的是爬上<tr>
级别,接下来的行,获得所有输入,获得第一个,然后获得id。
var id = $(this)
.closest('tr') // Get to the row level
.nextAll('tr') // Get all succeeding rows
.find('td > input') // Find the inputs. You may adjust the selector.
.eq(0) // Get the first input
.attr('id'); // Get its id, if any
答案 1 :(得分:3)
Nextall()
经历了兄弟姐妹,你的输入没有兄弟姐妹。
$("input").blur(function(){
var theid = $(this).attr('id');
var thefield = $(this).closest('tr').next().find('input').attr('id');
alert(thefield);
});