なぜこれが機能しないのですか
$('div.note')[0].removeClass('hidden');
私はfirebugからこのエラーを受け取ります:
TypeError: note.removeClass is not a function
なぜこれが機能しないのですか
$('div.note')[0].removeClass('hidden');
私はfirebugからこのエラーを受け取ります:
TypeError: note.removeClass is not a function
$('div.note')[0]
jQueryオブジェクトではなくjavascriptオブジェクトを提供し、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ヘルパー関数を使用する必要があります。