0

HTML

<div class="page-content">
    <div class="something">
      <img class="image" src="something alt="something">
    </div>
    <div class="another-div-in-there"></div>
    <div class="gallery">
      //stuff in there
    </div>

    <div class="something">
      <img class="image" src="something alt="something">
    </div>
    <div class="another-div-in-there"></div>
    <div class="another-div-in-there"></div>
    <div class="gallery">
      //stuff in there
    </div>

    <div class="something">
      <img class="image" src="something alt="something">
    </div>
    <div class="another-div-in-there"></div>
    <div class="gallery">
      //stuff in there
    </div>
</div>

jQuery

$(".page-content .image").each(function(i) {
    //$(this).closest('.gallery') ??
});

.gallery各`.image``の「次へ」または「次へ」を検索/選択するにはどうすればよいですか?

したがって、each()ループを実行するときは、最初の画像の最初のギャラリーが必要です。2番目を実行するとき、dom-treeの2番目の「下」にあるもの.imageを見つけたいと思います。.gallery.image

そうする方法はありますか?

4

3 に答える 3

1

考えられる解決策の1つ:

$(".page-content .image").each(function() {
    $(this).parent().next(".gallery");
});

ここで、クラス名(存在する場合)として次の兄弟要素parent()を取得し<div class="something">ます。next(".gallery")"gallery"


更新された質問には、次の.nextUntil()方法を使用できます。

$(this).parent().nextUntil(".gallery").next();
于 2013-01-20T14:44:01.283 に答える
1
$(".page-content .image").each(function() {
    $(this).parent().next('.gallery');
});

編集:更新された質問の場合:

$(".page-content .image").each(function() {
    $(this).parent().nextAll('.gallery:first');
});

こちらのサンプルをご覧ください

于 2013-01-20T14:44:18.817 に答える
1

このプラグインはまさにこのために書かれました。免責事項:私はそれを書いた

http://techfoobar.com/jquery-next-in-dom/

$(".page-content .image").each(function() {
    $(this).nextInDOM('.gallery');
});
于 2013-01-20T14:46:58.450 に答える