gpt4 book ai didi

javascript - 添加/删除动态行 Javascript

转载 作者:行者123 更新时间:2023-11-30 17:46:04 27 4
gpt4 key购买 nike

我正在尝试创建一个允许我使用 javascript 动态添加和删除行的表。我看过其他解决方案,但无法让我的解决方案发挥同样的作用。我可以添加行但不能删除。

这是我的 HTML

<div id="entireRuleSet">
<table border="1" id="newRuleTable">
<tr>
<td>Rule ID</td>
<td>Data Column Name</td>
<td>Operator</td>
<td>Value</td>
<td>Delete</td>
</tr>
<tr>
<td>
<input type="text" id="idBox"/>
</td>
<td>
<input type="text" id="columnBox" />
</td>
<td>
<input type="text" id="operatorBox" />
</td>
<td>
<input type="text" id="valueBox" />
</td>
<td>
<input type="button" id="deleteRow" value="Delete " />
</td>
</tr>
</table>
<input type="button" id="addNewRule" value="Add new rule" onclick="insRow()" />
<input type="button" id="saveButton" value="Save" />
</div>
<br />
<input type="button" id="addNewRuleSet" value="Add new rule set" />

这是我正在使用的javascript

function deleteRow(row) {
var i = row.parentNode.parentNode.rowIndex;
document.getElementById('newRuleTable').deleteRow(i);
}

function insRow() {
console.log('hi');
var x = document.getElementById('newRuleTable');
var new_row = x.rows[1].cloneNode(true);
var len = x.rows.length;
new_row.cells[0].innerHTML = len;

var inp1 = new_row.cells[1].getElementsByTagName('input')[0];
inp1.id += len;
inp1.value = '';
var inp2 = new_row.cells[2].getElementsByTagName('input')[0];
inp2.id += len;
inp2.value = '';
var inp3 = new_row.cells[3].getElementsByTagName('input')[0];
inp3.id += len;
inp3.value = 'Delete';
x.appendChild(new_row);
}

最佳答案

您错过了绑定(bind) deleteRow(row) 功能到 delete按钮

 <input type="button" id="deleteRow" value="Delete " />  

改为

 <input type="button" id="deleteRow" value="Delete " onclick="deleteRow(this)"/>

onclick="deleteRow(this)" , 通过 this根据您的 deleteRow(row),因为参数是必需的方法。

JSFiddle

关于javascript - 添加/删除动态行 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20137403/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com