使用javascript和jquery将按钮添加到每一行

时间:2018-06-27 22:46:49

标签: javascript jquery html

我使用JavaScript和Jquery,尝试为每行添加一个按钮。我想将click事件添加到每一行的按钮。 这是我的代码:

reportModal = UIkit.modal("#report_modal");
$('#report_modal').empty();

var gridHtml = "<table id='table1'>"
                  +"    <thead>"
                  +"      <tr>"
                  +"          <th>FirstName</th>"
                  +"          <th>Age</th>"
                  +"          <th>Tel</th>"                 
                  +"          <th>Button</th>"  
                  +"      </tr>"
                  +"      </thead>"
                  +"     <tbody></tbody>"
                  +"</table>";

$('#report_modal').html(gridHtml);                

var data = {};
       data.d = [{FirstName: 'AAA', Age: '20', Tel: '111'}, 
                {FirstName: 'BBB', Age: '98', Tel: '222'},
                {FirstName: 'CCC', Age: '45', Tel: '333'}];     
var trHTML = '';

for(var i = 0; i < data.d.length; i++){

  trHTML += '<tr><td>' + data.d[i].FirstName + '</td><td>' + data.d[i].Age + '</td><td>' + '<a onclick="showMsg(${data.d[i].FirstName})" href="#"><i class="flaticon-icon-path"></i></a>' + '</td></tr>';
}               

$('#report_modal').append(trHTML);

function showMsg(msg){
  alert(msg);
}

我的问题是,当单击按钮时,showMsg函数被调用,但是显示“未定义”;

请解决任何问题。谢谢。

2 个答案:

答案 0 :(得分:1)

这是语法错误: 使用onclick="showMsg(\''+data.d[i].FirstName+'\')"

赞:

   trHTML += '<tr><td>' + data.d[i].FirstName + '</td><td>' + data.d[i].Age + '</td><td>' + '<a onclick="showMsg(\''+data.d[i].FirstName+'\')" href="#"><i class="flaticon-icon-path"></i></a>' + '</td></tr>';

答案 1 :(得分:1)

您需要使用"Template literals"``才能使用字符串插值。此外,在这种情况下,您可以使用多行字符串!

trHTML += `<tr>
  <td>${data.d[i].FirstName}</td>
  <td>${data.d[i].Age}</td>
  <td>
    <a onclick="showMsg(${data.d[i].FirstName})" href="#">
      <i class="flaticon-icon-path"></i>
    </a>
  </td>
</tr>`;

或使用经典字符串串联

trHTML += '<tr><td>' + data.d[i].FirstName + '</td><td>' + data.d[i].Age + '</td><td>' + '<a onclick="showMsg(' + data.d[i].FirstName + '" href="#"><i class="flaticon-icon-path"></i></a>' + '</td></tr>';