Jquery next()不起作用

don*_*yor 0 javascript jquery

我有

<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个小时,真可惜......没有一个成功.我在这做错了什么?

ade*_*neo 5

这条线

$(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)

小提琴