我想为表格的第7列中的每个单元格添加一个复选框和一个监听器(我使用数据表):
<script>
$(document).ready(function() {
// add checkbox to scheduled
$("#pm_table td:nth-child(7)").each(function() {
var site_id =2;
// $(this).closest("tr");
// add checkbox
$(this).prepend('<input type="checkbox" '+(($(this).text())!='0'?'checked':' ')
+
// add listener
' onchange = alert("site_id:" ' + site_id + '") '
+
'/>');
});
});
</script>
问题是当我尝试选中/取消选中该复选框时,我遇到了这个错误:
参数列表之后的(index):1 Uncaught SyntaxError:missing)
我做错了什么,是否有更好的方法使用数据表向单元格添加监听器?
答案 0 :(得分:2)
问题是由于onchange
事件属性周围缺少引号,但您应该完全避免使用它们并使用委托事件处理程序。试试这个:
$("#pm_table td:nth-child(7)").each(function() {
var $checkbox = $('<input type="checkbox" class="foo" />').appendTo(this);
$checkbox.prop('checked', parseInt($(this).text(), 10) != 0);
});
$('#pm_table').on('change', '.foo', function() {
var site_id = 2;
alert(site_id);
})
答案 1 :(得分:1)
您在onchange事件中添加额外+,"
。我应用了一个示例。
$(document).ready(function() {
// add checkbox to scheduled
$("#three").each(function() {
var site_id =2// $(this).closest("tr");
// add checkbox
$(this).prepend('<input type="checkbox" '+(($(this).text())!='0'?'checked':' ')
+
// add listener
' onchange = alert("site_id:'+site_id+'") />');
});
} );
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script>
<div id="three">1212</div>