javascript - 单击 html 行中的删除图标时从数组中删除项目

标签 javascript

我有点问题。我正在尝试添加、删除和编辑对象数组中的项目,在 html 表中显示其内容,但没有提交表单。到目前为止,我已经设法添加项目(感谢 David Calhoun),但现在我面临一个新问题,因为我不知道如何获取行索引(当我单击删除图像时),以便我可以删除那一行。有什么办法可以实现吗?

这是我的代码

<script>

var table = [];
function addDetail()
{
    table.push({            
        price: document.getElementById('price').value,
        description: document.getElementById('descripcion').value
    });

    showRow(table.length-1);
    resetEntries();

}
function resetEntries()
{
    document.getElementById('price').value='';
    document.getElementById('descripcion').value='';
    document.getElementById('price').focus();

}

function showRow(i)
{
    if (table.length>0){
        var tbl = document.getElementById('tabla_estilo'); 

        var newRow = tbl.insertRow(tbl.rows.length);
        var cell1 = newRow.insertCell(0);
        cell1.textAlign='center';
        cell1.innerHTML='<a href="#"><img src="images/edit.png" width="14" height="14" alt="Edit"/></a>'

        var cell2 = newRow.insertCell(1);
        cell2.textAlign='center';
        cell2.innerHTML='<a href="#" class="delete"><img src="images/delete.png" width="14" height="14" alt="Delete"/></a>'

        var cell3 = newRow.insertCell(2);
        cell3.textAlign='center';
        cell3.innerHTML=table[i].price;

        var cell4 = newRow.insertCell(3);
        cell4.textAlign='center';
        cell4.innerHTML=table[i].description;          
    }
}

这是我的表格的样子 alt text

最佳答案

来自onclick delete 的处理程序按钮,你可以遍历到它的 <tr>然后获取该行的 rowIndex属性(property)。

所以在onclick中:

var node = this.parentNode;
while( node && node.tagName !== 'TR' ) {
    node = node.parentNode;
}

var index = node.rowIndex;

因此,当您设置行单元格时,您可以添加一个处理程序:

var cell2 = newRow.insertCell(1);
cell2.textAlign='center';
cell2.innerHTML='<a href="#" class="delete"><img src="images/delete.png" width="14" height="14" alt="Delete"/></a>'

cell2.firstChild.onclick = function() {
    var node = this.parentNode;
    while( node && node.tagName !== 'TR' ) {
        node = node.parentNode;
    }
    var index = node.rowIndex;
    alert('index');
    return false;
}

这为每一行创建了一个新函数。最好改为引用命名函数。

关于javascript - 单击 html 行中的删除图标时从数组中删除项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4341128/

相关文章:

javascript - 单击标记时数组中的目的地

javascript - gtag 实现和 gtm 实现之间有什么区别?

c# - 如何使用 javascript 添加 @html 标签?

javascript - PHP 通过 AJAX 和 Async 在 Javascript 中

javascript - Mobx 状态树发生更改后如何让模型/状态进行监听?

javascript - Python flask : send variable data to textarea on the same html page w/JQuery

javascript - 如果手动关闭,UI Bootstrap 下拉开关需要单击两次

javascript - 将 JSON 字符串发布到 JSP 时出现意外标记

javascript - 使用 File API 编写 javascript 生成的文件

javascript - 在 Canvas 中绘制裁剪后的图像