3

なぜこれが機能しないのですか

$('div.note')[0].removeClass('hidden');

私はfirebugからこのエラーを受け取ります:

TypeError: note.removeClass is not a function
4

3 に答える 3

8

$('div.note')[0]jQueryオブジェクトではなくjavascriptオブジェクトを提供し、removeClassはjQueryメソッドです。jQueryメソッドを使用する前に、それをjQueryオブジェクトに変換する必要があります。

これを試して、

$($('div.note')[0]).removeClass('hidden');

また

$('div.note').eq(0).removeClass('hidden');
于 2012-07-19T18:32:15.267 に答える
3

ブラケットの使用法に厳密でない場合は、使用.eq()がはるかに合理化されます。

$('div.note').eq(0).removeClass('hidden');
于 2012-07-19T18:33:54.293 に答える
1

非常に基本的に、各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ヘルパー関数を使用する必要があります。

于 2012-07-19T18:47:15.177 に答える