3

次の HTML を想像してください。

<div id="outer">
    <div id="elem1"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>

    <div id="elem2"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>

    <div id="elem3"></div>
    <div class="helperBtn"></div>
    <div class="helperBtn"></div>
</div>

elem2次の両方を選択するにはどうすればよいdiv.helperBtnですか?
私はこのようなことを試しました:$('#elem2').add(':next')しかし、実用的な解決策を得ることができませんでした.
何か案は?

4

3 に答える 3

8

あなたの場合、addBack()nextUntil( ) を使用できます。

var elements = $("#elem2").nextUntil("#elem3").addBack();

上記は と の間のすべての要素に一致#elem2し、セットに#elem3追加し直します。#elem2結果の jQuery オブジェクトには 3 つの要素が含まれます。

編集:このソリューションがハードコーディングされていることについて、別の回答に正当な懸念があります。それは本当ですが、簡単に変更できるため、最初の要素を指定するだけで済みます。

var elements = $("#elem2").nextUntil(":not(.helperBtn)").addBack();
于 2013-09-30T09:04:39.563 に答える
0

これは最善の解決策ではないかもしれませんが、うまくいきます。

$elem2 = $("#elem2");
$elemhelperButton = $elem2.next();
$elem2 = $elem2.add($elemhelperButton);
$elem2 = $elem2.add($elemhelperButton.next());

$elem2.click(function () {
  alert("hi there");
});
于 2013-09-30T09:11:36.423 に答える