无法找到名称属性

时间:2012-11-20 21:44:36

标签: 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 input:checkbox");
            HandleCheckedChanged(chkCtrl);
        }

但如果我处理click事件,则this.name返回一个值

 $("#tblAssays").on("click", "tbody td input:checkbox", function () {
    HandleCheckedChanged(this);

有人能指出我做错了吗?

感谢。

2 个答案:

答案 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);