给html标签中的onclick事件传递变量值,传值过程中值产生变化

需求:删除表格中的一行,点击删除,会删除当前的一行记录,给html标签中的onclick事件传递变量值,传值过程中值产生变化

思路:获取到当前行的主键id值,因为然后根据主键删除。

实现:每个td上绑定onclick事件,然后给onclick事件里面绑定id值

不正确代码如下:

for (var i = 0; i < list.length-1; i++) {
    var user = list[i].split("|");
    user_info ="<tr>"
        +" <td>"+"<input type=\"checkbox\" />"+"</td>"
        +" <td>"+user[2]+"</td>"
        +" <td>"+user[1]+"</td>"
        +"<td id='editor'>"+"<img src=\"../imgs/set.png\">"+"</td>"
        +"<td onclick=\"deleteUser("+user[0]+" )\">"+"<img src=\"../imgs/delete.png\">"+"</td>"
        +"</tr>"+user[0];
    $("#user_list").append(user_info);
}

给html标签中的onclick事件传递变量值,传值过程中值产生变化

然后用一个函数接收

function deleteUser(flag) {
    alert(flag);
    var user_id=flag;
    var paras = "user_id=" + user_id;
    var status = new Array();
    var result = function () {
        if(status[0] == "ok"){
            alert("注销用户成功");
            $("#user_list  tr:not(:first)").empty("");
            userList();
        }else{
            alert('注销用户失败');
        }
        }
        console.log(paras);
    getFromWS("user/deleteUsers.template",paras,status,result);
}

给html标签中的onclick事件传递变量值,传值过程中值产生变化

其实这样写是有效果的,能接受到传过来的值,

给html标签中的onclick事件传递变量值,传值过程中值产生变化

比如上图这样,值传过来了,但是问题是值变了!变了!变了!重要的问题说三遍,一开始测试老是删除成功,但是页面没有变化,我就奇了怪了,但先在值变了,就更纳闷了,这么一点的空间距离你是肿么了。后来网上查了一波,发现好多把值写成字符串的形式,我就试了下,发现是对的。这个地方的原理有点不太明白。但是结果出来了还是倍感欣慰的。这个地方还有一个重要的问题是单双引号的问题,巨坑。好了,不多说了,得去赶进度了。

给html标签中的onclick事件传递变量值,传值过程中值产生变化