我有
<table class="prodtable">
<tr>
<td></td>
<td>
<input class="editok" value="2" />
</td>
<td>
<input name="prodnumber" value="1" />
<i></i>
</td>
</tr>
</table>
Run Code Online (Sandbox Code Playgroud)
而这个js
$('.prodtable').on('blur','.editok',function(){
var neuanzahl = $(this).val();
$(this).parent('td').text(neuanzahl);//<-- till here works fine
$(this).parent('td').next().find('input').val(neuanzahl);//<-- from here, failure
$(this).parent('td').next().find('i').addClass('icon-pencil');
});
Run Code Online (Sandbox Code Playgroud)
在editok被动态插入的输入,这就是为什么我设置从父表的处理程序.
我的问题是,在模糊事件中,给定输入的值应放在下一个输入中,该输入位于下一个td带有名称的输入中,prodnumger并且<i>应该获取该类icon-pencil.
我现在想要1个小时,真可惜......没有一个成功.我在这做错了什么?
这条线
$(this).parent('td').text(neuanzahl);
Run Code Online (Sandbox Code Playgroud)
替换TD中的所有内容,就像它所做的text()那样,它会覆盖所有内容,所以当你这样做时,就在下一行
$(this).parent('td').next().find('input') ...
Run Code Online (Sandbox Code Playgroud)
没有this,你刚刚删除它text()
只是链接而不是使用多行将保持引用
$('.prodtable').on('blur','.editok',function(){
var neuanzahl = this.value;
$(this).parent('td')
.text(neuanzahl)
.next('td')
.find('input')
.val(neuanzahl)
.next('i')
.addClass('icon-pencil');
});
Run Code Online (Sandbox Code Playgroud)