`find()`undefined不是函数

我有这个小jquery函数:

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

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

 Uncaught TypeError: undefined is not a function 

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

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

谢谢

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

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

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

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

这是更可读的IMO。

环绕元素与$(...)一起工作

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

$()包裹element就像adeneo的答案或者只是使用this

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

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

可能是,如果你正在加载多个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/