【问题标题】:appendChild not in right placeappendChild 不在正确的位置
【发布时间】:2013-12-28 16:39:52
【问题描述】:

我想在特定行之后将一个子项 (<tr>) 添加到表中。因为行是由while mysqli_fetch_array()添加的

我做了一个小提琴来展示这个问题。当您单击添加时,将添加文本“abc”。但在桌子后面,而不是原来的行下的新<tr>Fiddle 这怎么能解决。

【问题讨论】:

  • tabletbody 也有 insertRow 方法。与tr元素的rowIndex一起使用,应该够快了。

标签: javascript html appendchild


【解决方案1】:

jsFiddle Demo

您正在插入带有附加 Child 的表格行的子项。这就是为什么放置似乎“不在正确的位置”。但是,它就在您要求放置的位置。相反,您可以像这样使用 insertBeforeMDN

ct.parentNode.insertBefore(tr,ct.nextSibling);

这将查看行的父行 (<tbody>),然后在所选按钮的下一行之前插入新行。本质上这是“insertAfter”,但无论出于何种原因,该功能从未实现过。

关于insertBefore 有点慢并且应该避免或首选appendChild 的说法,似乎that is not the case

【讨论】:

  • 谢谢 :) 好的,我不想要“insertBefore”,因为它很慢,但是没有其他方法 :)
  • 答案不就是这样吗?
  • @user3108507 - 看起来事实并非如此。从这个 jsPerf demo 可以看出 appendChild 实际上慢了 31%。
  • 好的,在这种情况下,我将始终使用插入。有人告诉我插入速度很慢……而且我必须这样做 200 次。但如果它很快,那很好。 :D
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多