我在尝试在两种情况中的一种情况下获取datatables.js行上的复选框时遇到问题。
使用下面的代码chkCtrl.name在处理函数中是未定义的。
$("table#tblAssays tbody tr").each(function (index) {
if ($.trim($(this).find('td:eq(9)').text()) == todayDOW)
{
var chkCtrl = $(this).find("td input:checkbox");
HandleCheckedChanged(chkCtrl);
}
但如果我处理click事件,则this.name返回一个值
$("#tblAssays").on("click", "tbody td input:checkbox", function () {
HandleCheckedChanged(this);
有人能指出我做错了吗?
感谢。
答案 0 :(得分:0)
$(this).find("td input:checkbox")
返回一个没有name属性的jQuery对象,而click处理函数中的this
引用一个DOM对象,它有一个name属性。
请尝试HandleCheckedChanged(chkCtrl[0]);
。
答案 1 :(得分:0)
在第一个示例中,您将jQuery对象引用传递给HandleCheckedChanged
函数。在后者中,您实际上是在传递DOM元素。
您应该将第一个更改为:
var chkCtrl = $(this).find("td input:checkbox").get(0);