1

タブなど、特定のクラスに属するdivのスタックがあります。セマンティック構造は次のようになります。

<div class = "tabs" >_______</div>
<div class = "tabs" >_______</div>
<div class = "tabs" >_____</div>

divの最初と最後の要素に簡単にアクセスできます。

$('.tabs:first') or
$('.tabs:last')

しかし、2番目に到達すると(そして、内部に他の複数のdivがあり、最初または最後以外のすべてのdivがあると仮定すると)、次のような構文エラーが発生するようです。

$('.tabs:second') or $('.tabs:third')期待どおりに動作しません。

誰かがここで何が悪いのか特定できますか?

4

3 に答える 3

6

セレクターを使用してみてくださいeq()。インデックスがゼロベースであることに注意してください。

$(".tabs:eq(1)");
于 2012-07-24T21:25:34.637 に答える
6

.eq()これを行うには、メソッドまたは:eq()セレクターの2つの方法があります。

.eq()メソッド:

jQueryのドキュメントでこれを行うことを推奨する方法は、.eq()メソッドを利用することです。

// eq() is zero-based, so this would get the second element
$('.tabs').eq(1)

便利な機能は.eq()、負の数を取ることもできることです。これにより、関数は代わりに最後から開始されます。

// This would take the second element from the end
$('.tabs').eq(-2);

:eq()セレクター

jQueryはセレクターも提供します。:eq()セレクターは基本的に.eq()メソッドと同じように機能します。したがって、これも行うことができます。

$('.tabs:eq(1)')

これは機能します.eq()が、セレクターの代わりにメソッドを使用することをお勧めします。この方法は、最新のブラウザーでパフォーマンスが向上し、:eq()セレクターは負の数をサポートしていないため、多少制限があります。

于 2012-07-24T21:25:55.917 に答える
3

jQuery:firstセレクターのドキュメントをご覧ください:http: //api.jquery.com/first-selector/

これはjQuery拡張機能であり、CSS仕様の一部ではないことに気付くでしょう。また、これ:firstはと同等:eq(0)です。つまり、2番目の要素を取得する場合は、で実行できます:eq(1)

CSSセレクターにフィルターが必要ない場合は、次のように.eqメソッドを使用して要素を取得できます。

$('.tabs').eq(0) // get the first element
$('.tabs').eq(1) // get the second element
$('.tabs').eq(2) // get the third element
$('.tabs').eq(-2) // get the second to last element
$('.tabs').eq(-1) // get the last element
于 2012-07-24T21:31:47.467 に答える