我有一個簡單的腳本,將表格行復制到全局JavaScript變量(我知道在JavaScript中使用全局變量並不是一個好主意,但這僅用於開發)和在「onClick」事件中插入行的副本的函數。Javascript和DOM - insertBefore只能執行一次
它執行並插入一行。問題是它只會插入一行ONCE。
下面是一個示例表
<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>
我很爲難
修好了!謝謝。你知道爲什麼回收對象會導致腳本失敗嗎? –
不客氣。我認爲回收(再次插入相同的元素)將實際上從當前父元素中移除該元素,並將其再次插入到不同的地方(或者可能到完全相同的地方,就您的情況而言)。它不會被自動複製/複製,因此您一直處理(移除和插入)相同的單個元素實例。您需要在適當的地方創建新的行/元素。 – yaku
啊!這很有道理。謝謝。 –