使用javascript和Jquery,我尝试为每一行添加一个按钮。我想为每一行的按钮添加一个单击事件。下面是我的代码:
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函数被调用,但它显示为“未定义”;
请有任何想法来解决它.谢谢。
发布于 2018-06-28 06:52:49
这是语法错误:请使用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>';
发布于 2018-06-28 06:56:04
您需要使用"Template literals" 才能使用字符串插值。此外,在thiat的情况下,你可以使用多行字符串!
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>';
https://stackoverflow.com/questions/51072432
复制相似问题