我有这个小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/
由于
答案 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/