嘿伙计们快速质疑我的语法是正确的,只是想知道这是从这个表行记录数据值的正确方法。当我点击glypicon时,我得到"编辑"的控制台日志。但是id未定义。当我在浏览器中检查glypicon时,它具有正确的数据值。我点击它时只是试图控制登录。
newrow.append($("<td><span onclick=editTask() i class='fas fa-edit glypiconSpace' data='" + taskid + "'></i></span><span onclick=deleteTask() i class='fas fa-trash-alt glypiconSpace2' data='" + taskid + "'></i></span></td>"))
function editTask() {
console.log("edit")
var id = ($(this).attr("data"));
console.log(id)
}
答案 0 :(得分:0)
你有2个错误:
您已将onclick
添加到span
,但data
已添加到i
。
您在this
中使用了editTask
,但this
毫无意义,因为它没有任何元素。 (more information)
你需要以正确的方式追加和添加监听器,如下所示:
<强> HTML 强>
<table>
<tr id="newRow"></tr>
</table>
<强> JS 强>
var taskid = "test";
var editSpan = $("<span> </span>");
var editIcon = $("<i class='fa fa-edit' data='" + taskid + "'></i>");
editIcon.click(function() {
console.log("edit");
var id = ($(this).attr("data"));
console.log(id);
});
var yourTd = $("<td>");
$(yourTd).append(editSpan);
$(editSpan).append(editIcon);
$('#newRow').append(yourTd);