Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery next()不工作_Javascript_Jquery - Fatal编程技术网

Javascript Jquery next()不工作

Javascript Jquery next()不工作,javascript,jquery,Javascript,Jquery,我有 这是js <table class="prodtable"> <tr> <td></td> <td> <input class="editok" value="2" /> </td> <td> <input name="prodnumber" value="1" /> <i></i> </td> </tr>

我有


这是js

<table class="prodtable">
<tr>
 <td></td>
 <td>
     <input class="editok" value="2" />
 </td>
 <td>
  <input name="prodnumber" value="1" />
  <i></i>
 </td>
</tr>
</table>
$('.prodtable')。在('blur','.editok',函数()上{
var neuanzahl=$(this.val();
$(this).parent('td').text(neuanzahl);//此行

$('.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'); 
});
替换TD中的所有内容,因为这就是
text()
所做的,它会覆盖所有内容,所以在下一行中执行此操作时

$(this).parent('td').text(neuanzahl);
没有
,您只需使用
text()将其删除。

只是链接而不是使用多行将保留引用

$(this).parent('td').next().find('input') ...

您的表格打开标记拼写不正确,这可能是您遇到困难的原因。

在您调用
$(this).parent('td').text(…)
)时,您已经从其父项中删除了
输入。因此,以下调用中的
$(this).parent('td')
将不匹配任何内容

在开始时保存该
td
,并在整个过程中使用它:

$('.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'); 
});
示例:

是将下一个div的引用存储在变量中

$('.prodtable').on('blur','.editok',function(){
   var neuanzahl = $(this).val();
   var td = $(this).parent('td');

   td.text(neuanzahl);
   td.next().find('input').val(neuanzahl);
   td.next().find('i').addClass('icon-pencil'); 
});

代码的问题是当
$(this).parent('td').text(neuanzahl)时
的引用此
已丢失,因为您已将内容替换为
td

您尚未关闭
,并且开始元素为tabe而不是table@MikeCheel不,这只是一个发布错误。在原始代码中,html是完美的。我只是从第一个输入的td中删除它。我正在尝试输入下一个td中的第二个输入。
.next()
应该转到下一个td,它仍然有输入,对吗?是的,它应该,可能会发布一个示例来说明问题help@doniyor执行
.text()
时,它将替换表格单元格中的所有内容,因此在下一行
$(此)
已经不存在了。这不是问题所在。
next()
td
确实有一个输入,但是没有
$(this.parent()
这样的东西,因为
这个
是另一个
输入
,当
text()时,它刚刚从DOM中删除调用了
-参见我的答案/示例。保罗,看,我使用的是
.next()
哪个应该转到下一个TD,它仍然有inputfield,对吗?你使用的是
$(this)。parent('TD').next()
,但是
$(this)。parent('TD')
不再有任何意义,所以
next()
对你没有任何好处。我在这里做同样的事情,基于相同的
td
,只是不想把它作为不再存在的
输入的父项。哦,好吧。我想,一旦我有了对象,
text()
无法删除它,但它显然可以删除。谢谢Paul。这是一次有趣的旅程。因此,即使在
text()
ing之后,我仍有一些工作要做,对吗?是的,如果您想执行进一步的操作。
$('.prodtable').on('blur', '.editok', function () {
    var td =  $(this).parent('td'); 
    var next =  $(this).parent('td').next(); //Store reference of next div in a variable
    var neuanzahl = $(this).val();
    td.text(neuanzahl); 
    next.find('input').val(neuanzahl);
    next.find('i').addClass('icon-pencil');
});