指定した要素の次以降にある兄弟要素から指定した要素までを取得するには、
.nextUntil() を使用します。
構文
- (構文)
- .nextUntil([<セレクタ>], [<セレクタ>])
引数のセレクタを省略した場合は、nextAllと同じ動きになります。
サンプルソース
例)ボタンを押すと、id="a2"の次からid="a5"の前までの文字色を青色にする
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>nextUntilサンプル</title> <script src="https://code.jquery.com/jquery-3.2.1.min.js"></script> <script> $(function(){ $('#btn1').click(function(){ $("#a2").nextUntil("#a5").css("color", "blue"); }); }); </script> </head> <body> <input type="button" id="btn1" value="ボタン"> <ul> <li id="a1">AAA</li> <li id="a2">BBB</li> <li id="a3">CCC</li> <li id="a4">DDD</li> <li id="a5">EEE</li> <li id="a6">FFF</li> <li id="a7">GGG</li> </ul> </body> </html> |
実行すると、CCC、DDD が青文字になります。
解説
- 引数にセレクタを1つ指定した場合は、そのセレクタに合致した要素の1つ手前までが対象になります。
- 引数にセレクタを2つ指定した場合は、指定した2つのセレクタに合致した要素の1つ手前までが対象になります。
- 引数を指定しない場合は、.nextAll()と同じ動きになります。
- 指定した要素も取得対象としたい場合は、.addBack() を併用してください。
⇒ [jQuery] マッチした要素に加えて、1つ前にマッチした要素を加える