javascript - 如何使用 jQuery 在动态 DOM 元素上使用 .insertAfter?

标签 javascript jquery html dom

因此,我尝试使用 jQuery 的 DOM 创建工具动态地将一行添加到表中,当 I discovered that you cannot use the insertAfter() method on elements that have been dynamically created ,呈现此:

var row = $('<tr></tr>')
  .append($('<td></td>', { html: firstVal })
      .insertAfter($('<td></td>', { html: secondVal  }) // This doesn't work!
      )
  );

没用,因为这正是我正在做的事情。尝试在动态元素上使用 insertAfter

最简单、最有效的解决方案是什么,并且仍能生成干净的代码?

最佳答案

首先,您可以使用insertAfter动态创建的 DOM 元素。只需它们需要有一个父节点,这样就有一个可以插入“下一个”元素的树。您正在调用insertAfter在那<td>在将其附加到 <tr> 之前。以下内容可行:

var td1 = $('<td></td>', { html: firstVal }),
    td2 = $('<td></td>', { html: secondVal });

var row = $('<tr></tr>').append(td1);
td1.insertAfter(td2);

但是,您真正想要做的是使用 append 多次:

var row = $('<tr></tr>')
    .append($('<td></td>', { html: firstVal }))
    .append($('<td></td>', { html: secondVal }));

即使有多个参数:

var row = $('<tr></tr>')
    .append($('<td></td>', { html: firstVal }),
            $('<td></td>', { html: secondVal }));

关于javascript - 如何使用 jQuery 在动态 DOM 元素上使用 .insertAfter?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27179783/

相关文章:

javascript - EmberJS 在 Controller 中的 promise

javascript - 如何对 workboxSW 预缓​​存项使用 staleWhileRevalidate?

javascript - 未捕获的 URIError : URI malformed - jquery UI tabs on Windows

html - Angular-是否可以在子组件中使用内容投影?

javascript - 为什么我的内部对象中的值是空白的?

javascript - 在 Visual Studio 代码中调试不起作用

javascript - HTML5 Canvas float 粒子响应修复?

带有标准链接的 HTML5 History API

javascript - 从非嵌套的 div 构建嵌套数组?

javascript - knockout.js 虚拟模板绑定(bind)