117

クラスごとに次の要素を見つけるにはどうすればよいですか。

試してみましたが、これは親$(obj).next('.class');のクラスのみを返します。$(obj)コード全体のどこかでクラス名で次の要素を取得する必要があります。私のコードは次のように見えるので

<table>
<tr><td><div class="class">First</div></td></tr>
<tr><td><div class="class">Second</div></td></tr>
</table>

これは可能ですか?

4

5 に答える 5

169

この場合、次のように、<tr> 次に使用する必要があります.next()

$(obj).closest('tr').next().find('.class');

.classまたは、内部のない行が間にある可能性がある場合は、次.nextAll()のように使用できます。

$(obj).closest('tr').nextAll(':has(.class):first').find('.class');
于 2010-09-08T22:33:04.857 に答える
28

同じクラスの次の要素を見つけるには:

$(".class").eq( $(".class").index( $(element) ) + 1 )
于 2016-09-14T02:47:47.433 に答える
17

このシナリオではnext()を使用できません。ドキュメントを見ると、次のようになってい ます
。Next() 一致した要素のセット内の各要素の直後の兄弟を取得します。 セレクターが指定されている場合は、セレクターに一致する次の兄弟を取得します。

したがって、2番目のDIVが同じTDにある場合は、次のようにコーディングできます。


// Won't work in your case
$(obj).next().filter('.class');

しかし、そうではないので、next()を使用する意味がわかりません。代わりに次のようにコーディングできます。

$(obj).parents('table').find('.class')

于 2010-09-08T17:11:21.150 に答える
1

最初のセレクターであるSelectorAを指定すると、次のSelectorB一致を次のように見つけることができます。

ボーダーを変更するためのマウスオーバーの例-with:

$("SelectorA").on("mouseover", function() {
    var i = $(this).find("SelectorB")[0];
    $(i).css({"border" : "1px"});
    });
}

ボーダーを変更する一般的な使用例-with:

var i = $("SelectorA").find("SelectorB")[0];
$(i).css({"border" : "1px"});
于 2020-11-14T15:07:04.260 に答える
0

タグ名で次の要素を検索するには

  function findNext(start, tag)
    {
      while(start.nodeName !== tag)
      {
            start = start.nextElementSibling;
      }
      return start;
    }
于 2021-08-22T07:28:47.703 に答える