Javascript 找不到name属性

Javascript 找不到name属性,javascript,jquery,datatables,Javascript,Jquery,Datatables,在以下两种情况中的一种情况下,我在尝试获取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

在以下两种情况中的一种情况下,我在尝试获取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);
        }
但是,如果我按如下方式处理单击事件,则this.name将返回一个值

 $("#tblAssays").on("click", "tbody td input:checkbox", function () {
    HandleCheckedChanged(this);
有人能指出我做错了什么吗

谢谢。

$(this).find(“td-input:checkbox”)
返回一个jQuery对象,该对象没有名称属性,而单击处理程序函数中的
this
引用一个DOM对象,该对象没有名称属性


Try
HandleCheckedChanged(chkCtrl[0])

在第一个示例中,将jQuery对象引用传递给
HandleCheckedChanged
函数。在后者中,实际上是传递DOM元素

您应该将第一个更改为:

var chkCtrl = $(this).find("td input:checkbox").get(0);

是否确实正在解析元素,而不仅仅是试图从jQuery对象获取.name?分配处理程序时,DOM中似乎不存在该元素。。第二种情况下的事件委托似乎解决了“今天的定义在哪里”的问题??如果不是,您的意思是“todayDOW”?没有看到您的代码和datatables代码的顺序,也没有看到表是如何填充的,那么任何人都可以猜测问题出在Hanks dgvid。更改为chkCtrl[0]返回了dom对象,并且一切正常。