2

私はjQueryを使用していますが、少し問題があります。特定のクラスを持つ多数の DIV があり、そのうちの最初のものを選択しようとしています。first-childページレイアウトの関係で疑似クラスが使えない(話が長い)。しかし、jQuery オブジェクトを配列として扱うことで、同じ効果を得ることができます。私の問題は、これが jQuery オブジェクトではなく、プレーンな Javascript オブジェクト (具体的には HTMLDivElement) を返すことです。

$("#wizard div.collapsible")[0].addClass("selected");

返されたオブジェクトには機能がないため、これは失敗しaddClassます。を使用しても失敗します.get(0)。ただし、これ機能します。

$($("#wizard div.collapsible")[0]).addClass("selected");

ダブルjQueryセレクターを実行する必要なくこれを行う方法はありますか? (大したことではありませんが、ちょっと混乱しているように見えます。)

4

5 に答える 5

2

[0]生の要素になります。それは正しく、望ましい動作です。jQuery オブジェクトを保持する場合は、$("selector:first")or$("selector").first()またはを使用$("selector").eq(0)して、jQuery オブジェクトにラップされた最初の要素を取得します。

于 2013-06-12T17:51:38.427 に答える
0

あなたが$('#wizard div.collapsible')[0]言ったようにプレーンなJSオブジェクトを返すと、それはプレーンなJSオブジェクトであり、jQueryオブジェクトではないため、jQueryメソッドを使用することはできません。ダブルセレクターを使用するか、使用することができます$('#wizard div.collapsible')[0].className = "selected";

于 2013-06-12T17:52:38.517 に答える
0

$.eqトリックを行う必要があります:

$("#wizard div.collapsible").eq(0).addClass("selected");

複数の要素で共有されるクラスを選択すると、jQuery コレクションが返されます。そのコレクションに配列としてアクセスしようとすると、生のオブジェクトが返さ$.eqれますが、便宜上、jQuery オブジェクトを返すように設計されています。

于 2013-06-12T17:52:02.820 に答える