代码改变世界

JQuery动态添加表格,然后动态删除不成功问题

2017-09-07 14:10  yongchin  阅读(751)  评论(0编辑  收藏  举报

背景:

自己做了一个测试网页,想动态添加表格,然后删除,按照网上的教程写完,发现点击"删除参数"按钮没用

 

源码:

function addtr() {
    var trinfo = "<tr><td><input placeholder='参数名称' style='width: 80%'></td>" +
        "<td><input placeholder='参数值' style='width: 70%'><button id='delete-btn' onclick='removetr(event)'>删除参数</button></td></tr>";
    $("#keytable").append(trinfo);
}

function removetr() {
    $(this).parents("tr").empty();
}

 

问题现象:

不能删除

问题原因:

选择器没有选到元素,用console.log抓取获取到的元素发现是全局windows

解决方法:

提供两种方法

方法一:利用event点击事件

function addtr() {
    var trinfo = "<tr><td><input placeholder='参数名称' style='width: 80%'></td>" +
        "<td><input placeholder='参数值' style='width: 70%'><button id='delete-btn' onclick='removetr(event)'>删除参数</button></td></tr>";
    $("#keytable").append(trinfo);
}

function removetr(ev) {
    $(ev.target).parents("tr").empty();
}

 

方法二:利用监听on功能

function addtr() {
    var trinfo = "<tr><td><input placeholder='参数名称' style='width: 80%'></td>" +
        "<td><input placeholder='参数值' style='width: 70%'><button id='delete-btn' onclick='removetr()'>删除参数</button></td></tr>";
    $("#keytable").append(trinfo);
}

$(function () {
   $(document).on("click", "#delete-btn", function () {
        $(this).parents('tr').empty()
    });
});