`find()`undefined不是一个函数

时间:2014-05-04 14:54:36

标签: javascript jquery

我有这个小jquery函数:

$.each($('#TableBody tr:gt(0)'), function(index, element){
    element.find('td').last().html($('<span/>', {class: "input-group-addon", text: 'Auswählen'}));
});

不知怎的,我在第一行收到了这个错误:

Uncaught TypeError: undefined is not a function 

我在控制台中试了一些东西来解决这个问题!但不知何故没有用!

现在我希望你能帮助我! JSFIDDLE:http://jsfiddle.net/3C98M/

由于

4 个答案:

答案 0 :(得分:13)

element不是jQuery对象,$.each函数的第二个参数返回本机DOM节点

$.each($('#TableBody tr:gt(0)'), function(index, element){
    $(element).find('td').last().html($('<span/>', {"class": "input-group-addon", text: 'Auswählen'}));
});

另请注意,class是javascript中的保留关键字,应引用 它也可以写成

$('#TableBody tr:gt(0)').each(function(index, element) {
      $(element).find('td').last().html(
          $('<span/>', {
              "class" : "input-group-addon", 
              text    : 'Auswählen'
          })
      );
});

更可读的IMO。

答案 1 :(得分:3)

使$(...)工作的环绕元素

$(element).find('td:last')....

答案 2 :(得分:1)

element$()一起包裹,例如adeneo的答案或仅使用this

$('#TableBody tr:gt(0)').each(function () {
    $(this).find('td:last').html($('<span/>', {
            "class" : "input-group-addon",
            text : 'Auswählen'
        }));
}));

答案 3 :(得分:0)

这很可能不是约翰史密斯问题的答案(顺便提一下非常通用的名称),但它希望与寻找“X不是函数”javascript错误的解决方案的用户相关(为此帖子是最好的结果)。

可能是,如果你要加载多个Javascript库,$(jQuery的快捷方式)会被覆盖。

您可以使用:

 jQuery(element).find('td:last')....

而不是

 $(element).find('td:last')....

解决此问题(或删除覆盖jQuery的库)。

来源:http://codeimpossible.com/2010/01/13/solving-document-ready-is-not-a-function-and-other-problems/