我有模特
userLibrary(z)
和数组function row() {
this.name = '';
this.rulingValue = '';
this.pathToImage = '';
this.rulingType = '';
this.dateStart = '';
this.dateEnd = '';
}
我有桌子
var jsonData = [];
和按钮添加此表的行ti。当我向表中添加行时,我也将它添加到数组中。
将行添加到数组
的方法<table class="table" id="data-table">
<tbody>
</tbody>
</table>
向表中添加行的方法
function add() {
var item = new row();
item.name = document.getElementById("ruling-name").value;
item.pathToImage = document.getElementById("path-to-image").value;
item.rulingValue = document.getElementById("ruling-value").value;
item.rulingType = document.getElementById("ruling-type").value;
item.dateStart = document.getElementById("dtp_input1").value;
item.dateEnd = document.getElementById("dtp_input2").value;
jsonData.push(item);
ddRow(item);
}
一切正常但我无法从数组中删除当前行
function ddRow(item) {
const newRow = tbody.insertRow(tbody.rows.length);
newRow.insertCell(0).appendChild(document.createTextNode(item.name));
newRow.insertCell(1).appendChild(document.createTextNode(item.pathToImage));
newRow.insertCell(2).appendChild(document.createTextNode(item.rulingValue));
newRow.insertCell(3).appendChild(document.createTextNode(item.rulingType));
newRow.insertCell(4).appendChild(document.createTextNode(item.dateStart));
newRow.insertCell(5).appendChild(document.createTextNode(item.dateEnd));
var btn = document.createElement("BUTTON");
btn.setAttribute('type', 'button');
btn.onclick = function () {
$(this).closest('tr').remove();
};
var t = document.createTextNode("delete");
btn.appendChild(t);
newRow.insertCell(6).appendChild(btn);
}
但是如何从数组中删除这一行?
修改
是的,我看到了这个解决方案
$(this).closest('tr').remove(); // removed row from table
但我怎么能做到这一点?
var array = [2, 5, 9];
var index = array.indexOf(5);
if (index > -1) {
array.splice(index, 1);
}
我试过
var index = jsonData .indexOf(??????????????????????);
我有&#34; var row = this.parentNode.parentNode;
var index = jsonData.indexOf(row)
alert(index);
&#34;
答案 0 :(得分:1)
要根据您的条件查找项目索引,您可以在阵列上使用findIndex函数。
jsonData.findIndex(function(item){ return item.name === "My name" })
该功能未在IE中实现,但您可以使用上面链接中的polyfill。