Javascript 通过JQuery替换表行

Javascript 通过JQuery替换表行,javascript,jquery,ruby-on-rails,ruby-on-rails-3,dom,Javascript,Jquery,Ruby On Rails,Ruby On Rails 3,Dom,我在更换一排桌子时遇到了问题。我试图删除该行,然后通过rails部分将新行附加到表中。将追加新行,但不会删除旧行。如果没有添加另一行,我可以删除该项,但我相信当函数链接在一起时,它们会按照它们所附加的顺序发生。原始行和替换行具有相同的ID,我认为这是导致问题的原因,但是由于一行应该在附加另一行之前删除,我确实认为会有问题 $('#userList') .remove('#user_<%= @new_user.id %>') .append("<%=j render :parti

我在更换一排桌子时遇到了问题。我试图删除该行,然后通过rails部分将新行附加到表中。将追加新行,但不会删除旧行。如果没有添加另一行,我可以删除该项,但我相信当函数链接在一起时,它们会按照它们所附加的顺序发生。原始行和替换行具有相同的ID,我认为这是导致问题的原因,但是由于一行应该在附加另一行之前删除,我确实认为会有问题

$('#userList')
.remove('#user_<%= @new_user.id %>')
.append("<%=j render :partial=> 'user', :locals => {:user => @new_user, :current_user => @user} %>");

jQuery正在尝试从单个匹配元素userList的集合中删除user_*。你需要做的就是

$('#user_<%= @new_user.id %>').remove();

Fiddle示例:

要删除的元素是userlist的子元素,而不是同级元素。你必须导航到它

$('#userList').find('#user_<%= @new_user.id %>').remove()
    .end().append("<%=j render :partial=> 'user', :locals => {:user => @new_user, :current_user => @user} %>");
但直接选择它更有意义

$('#user_<%= @new_user.id %>').remove();
$('#userList').append("<%=j render :partial=> 'user', :locals => {:user => @new_user, :current_user => @user} %>");

如果使用.append方法创建新的id,则具有相同的id应该无关紧要。如果没有append方法,则行将被删除。。。那没有道理。。。您要定位的元素不在所选元素集中。我以这种方式定位它的原因是以tbodyuserList为目标并从中删除该行,然后使用新数据将该行添加回它。如果我不附加另一行,这将删除该行。是否只有一个tr/行?这不会删除该行,并且我最终得到两行相同的ID。此代码有效,其他javascript失败导致操作停止