控制台日志记录时记录数据值

时间:2018-03-17 03:13:11

标签: javascript jquery

嘿伙计们快速质疑我的语法是正确的,只是想知道这是从这个表行记录数据值的正确方法。当我点击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)
}

1 个答案:

答案 0 :(得分:0)

你有2个错误:

  1. 您已将onclick添加到span,但data已添加到i

  2. 您在this中使用了editTask,但this毫无意义,因为它没有任何元素。 (more information

  3. 你需要以正确的方式追加和添加监听器,如下所示:

    <强> 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);
    

    Online Demo (jsFiddle)