我有以下代码,它从数组中构建一个名为'data'的表。我想将javascript调用添加到我的另一个名为backend_getMovieData的方法中,但我不知道如何从movie._id构建一个字符串。我从我的示例代码中收到错误“Uncaught SyntaxError:Unexpected token}”。
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>')
.append($('<td>' + movie._id + '</td>'))
.append($('<td>' + movie.total + ' times</td>'))
.append($('<td><button class=\'btn btn-success\' onClick=backend_getMovieData(' + movie._id + ');>Show times</button></td>')));
});
答案 0 :(得分:2)
我认为,你的函数正在期待一个字符串。
这样做:
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>') <br />
.append($('<td>' + movie._id + '</td>'))<br />
.append($('<td>' + movie.total + ' times</td>'))<br />
.append($('<td><button class=\'btn btn-success\' onClick="backend_getMovieData(\'' + movie._id + '\')";>Show times</button></td>')));
});
你需要用引号包装它。
答案 1 :(得分:1)
JQuery可以通过更精细的方式完成它:
$("#shows").on('click', 'button.btn-success', function() { backend_getMovieData(this.id) });
data.forEach(function(movie) {
$("#shows").find('tbody')
.append($('<tr>') <br />
.append($('<td>' + movie._id + '</td>'))<br />
.append($('<td>' + movie.total + ' times</td>'))<br />
.append($('<td><button class="btn btn-success" id="' + movie._id + '">Show times</button></td>')));
});