Javascript 和 DOM - insertBefore 只执行一次

标签 javascript dom

我有一个简单的脚本,可以将表格行复制到全局 javascript 变量(我知道在 javascript 中使用全局变量不是一个好主意,但这仅用于开发) 和一个函数在“onClick”事件中插入该行的副本。

它执行并插入一行。问题是它只会插入一行一次。

这是一个示例表

<table id="myTable">
    <tbody>
        <tr id="copyRow">
            <td>Sample Cell</td>
        </tr>
        <tr>
            <td><a href="javascript:void();" onClick="insertRow(copy_row, this.parentNode.parentNode.parentNode)">Insert Row</a></td>
        </tr>
    </tbody>
</table>

这是我的示例 javascript:

<script type="text/javascript">
    copy_row = document.getElementByID('copyRow').cloneNode(true); //Runs when page first runs

    function insertRow(insertRow, insertBeforeMe){
     insertBeforeMe.parentNode.insertBefore(insertRow, insertBeforeMe)  
    }
</script>

我被难住了

最佳答案

您应该在每次调用 insertRow 函数时克隆该节点,以便您获得元素的新副本而不是回收一个克隆的行。

copy_row = document.getElementByID('copyRow'); //Runs when page first runs

function insertRow(insertRow, insertBeforeMe){
 insertBeforeMe.parentNode.insertBefore(insertRow.cloneNode(true), insertBeforeMe)  
}

关于Javascript 和 DOM - insertBefore 只执行一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14161168/

相关文章:

html - 如何使用 Typescript 在 React 中扩展 HTML 属性

javascript - 需要像 jquery empty() 这样的函数来删除 jquery 添加的元素

javascript - 如何在不使用 HTML 框架的情况下做到这一点?

Javascript 只允许一个文本框包含一个值

javascript - 照片库的问题

javascript - 如何从 Javascript 获取 gridview 内文本框的客户端 ID

javascript - 如何使用 Javascript 删除网站上的所有文本

javascript - 将自定义参数传递给react-router onEnter函数

javascript - 元素引用在修改容器的 innerHTML 属性时中断

jquery - 使用 jQuery 构建 HTML (~= DOM)