为什么这不起作用
$('div.note')[0].removeClass('hidden');
我从萤火虫那里得到这个错误:
TypeError: note.removeClass is not a function
为什么这不起作用
$('div.note')[0].removeClass('hidden');
我从萤火虫那里得到这个错误:
TypeError: note.removeClass is not a function
$('div.note')[0]
给你一个 javascript 对象,而不是 jQuery 对象,removeClass 是一个 jQuery 方法。在使用 jQuery 方法之前,您需要将其转换为 jQuery 对象。
尝试这个,
$($('div.note')[0]).removeClass('hidden');
或者
$('div.note').eq(0).removeClass('hidden');
如果您对括号的使用不严格,那么使用.eq()
会更加简化。
$('div.note').eq(0).removeClass('hidden');
基本上,将每个 jQuery 调用视为给您一个如下所示的对象:
var myPosts = $(".posts");
// To help make sense of it, myPosts looks something like this.
myPosts === {
elements : [ /* all of your returned elements */ ]
helpfulMethod : function () { for (element in elements) { /* .... */ } },
otherHelpfulMethod : function () { for (element in elements) { /*...*/ } }
}
如果你说:
var element = myPosts.elements[0];
element.otherHelpfulMethod();
它会向你吐出错误。
添加 .element 的方法是事后将数组称为“this”。
你也可以这样做:
for (i in arr; ....) {
this[i] = arr[i];
}
并获得相同的效果。
所以调用 myPosts[0] 只会得到 HTML 元素。然后您需要将其包装在 jQuery 对象中以使用辅助方法,或者您需要使用 jQuery 辅助函数来访问该特定元素。