2

以下の構造に似たページがあります。

<div id="row_2">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

そのIDを使用できないと仮定して、row_2のn番目の子を取得するにはどうすればよいですか(たとえば、row_1にいて、次のIDに移動しています)

私は以下を試しました:

current.parent().next().children().filter(":nth-child("+i+")");

ここで、「current」は前の「row div」のアイテムであり、「i」はアイテムのインデックスですが、これは機能しません。また、「i」の代わりに0を使用してテストしようとしましたが、それも機能しません。エラーはどこにありますか?

4

3 に答える 3

3

私があなたの質問を正しく理解したと仮定すると、あなたは探しているのでeqはなくnth-child

current.parent().next().children().eq(i);

ドキュメントの状態としてeq

一致した要素のセットを、指定されたインデックスの要素に減らします。

于 2012-04-25T11:25:24.617 に答える
1

あなたが何をしているのか完全にはわかりませんが、私は提案します:

current.parent().next().find(":nth-child("+i+")");

または:

current.parent().next().children().eq(i);

を使用する必要がある場合は、filter()(何が起こっているのか正確にはわからないが)多分試してみることをお勧めします。

current.parent().next().children().filter(
    function(){
        return $(this).is(":nth-child("+i+")");
    });

しかし、他の基準もフィルタリングしたい場合を除いて、利点はわかりません。

参照:

于 2012-04-25T11:25:39.380 に答える
1

開始点がrow_1、の場合、次のようになります。

var row2child3 = row1.next().children().eq(2); // zero-based index, 2 = third child

実例| ソース

row_1これは、とrow_2がすぐ隣にあることを前提としています。例:

<div id="row_1">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>
<div id="row_2">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

そうでない場合は、.nextAll("some selector here").first()ではなく必要になる可能性があります.next()

開始点がの項目の1つである場合、次のようrow_1になります。

..parent()そこにaを挿入します:

var row2child3 = item.parent().next().children().eq(2); // zero-based index, 2 = third child

実例| ソース

于 2012-04-25T11:25:59.037 に答える