我有
<table class="prodtable">
<tr>
<td></td>
<td>
<input class="editok" value="2" />
</td>
<td>
<input name="prodnumber" value="1" />
<i></i>
</td>
</tr>
</table>
和这个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');
});
editok
输入是动态插入的,这就是为什么我要从父表设置处理程序。我的问题是,在模糊事件上,给定输入的值应放在名称为
td
的下一个prodnumger
中的下一个输入中,并且<i>
应该得到类icon-pencil
。我现在尝试了1个小时,真是太遗憾了。我在这里做错了什么?
最佳答案
这条线
$(this).parent('td').text(neuanzahl);
替换TD中的所有内容,因为这是
text()
所做的,它将覆盖所有内容,因此在执行下一步时$(this).parent('td').next().find('input') ...
没有
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');
});
FIDDLE
关于javascript - jQuery next()无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25161528/