jQuery 同级元素

使用 jQuery,您可以在 DOM 树中横向遍历以查找元素的同级。

同级元素都有同一个父级元素


在 DOM 树中横向遍历

有许多有用的 jQuery 方法可以在 DOM 树中横向遍历:

  • siblings()
  • next()
  • nextAll()
  • nextUntil()
  • prev()
  • prevAll()
  • prevUntil()

jQuery siblings() 方法

siblings() 方法返回所选元素的所有同级元素。

下面的实例返回 <h2> 的所有同级元素:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .siblings * {
  6. display: block;
  7. border: 2px solid lightgrey;
  8. color: lightgrey;
  9. padding: 5px;
  10. margin: 15px;
  11. }
  12. </style>
  13. <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("h2").siblings().css({"color": "red", "border": "2px solid red"});
  17. });
  18. </script>
  19. </head>
  20. <body class="siblings">
  21. <div>div (父级)
  22. <p>p</p>
  23. <span>span</span>
  24. <h2>h2</h2>
  25. <h3>h3</h3>
  26. <p>p</p>
  27. </div>
  28. </body>
  29. </html>

您还可以使用可选参数在同级查询时进行筛选。

下面的示例返回 <h2> 的所有同级元素,它们都是 <p> 元素:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .siblings * {
  6. display: block;
  7. border: 2px solid lightgrey;
  8. color: lightgrey;
  9. padding: 5px;
  10. margin: 15px;
  11. }
  12. </style>
  13. <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("h2").siblings("p").css({"color": "red", "border": "2px solid red"});
  17. });
  18. </script>
  19. </head>
  20. <body class="siblings">
  21. <div>div (父级)
  22. <p>p</p>
  23. <span>span</span>
  24. <h2>h2</h2>
  25. <h3>h3</h3>
  26. <p>p</p>
  27. </div>
  28. </body>
  29. </html>

jQuery next() 方法

next() 方法返回所选元素的后面一个同级元素。

下面的实例返回 <h2> 的后面一个同级元素:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .siblings * {
  6. display: block;
  7. border: 2px solid lightgrey;
  8. color: lightgrey;
  9. padding: 5px;
  10. margin: 15px;
  11. }
  12. </style>
  13. <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("h2").next().css({"color": "red", "border": "2px solid red"});
  17. });
  18. </script>
  19. </head>
  20. <body class="siblings">
  21. <div>div (父级)
  22. <p>p</p>
  23. <span>span</span>
  24. <h2>h2</h2>
  25. <h3>h3</h3>
  26. <p>p</p>
  27. </div>
  28. </body>
  29. </html>

jQuery nextAll() 方法

nextAll() 方法返回所选元素的后面的所有同级元素。

下面实例返回 <h2> 的后面的所有同级元素:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .siblings * {
  6. display: block;
  7. border: 2px solid lightgrey;
  8. color: lightgrey;
  9. padding: 5px;
  10. margin: 15px;
  11. }
  12. </style>
  13. <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("h2").nextAll().css({"color": "red", "border": "2px solid red"});
  17. });
  18. </script>
  19. </head>
  20. <body class="siblings">
  21. <div>div (父级)
  22. <p>p</p>
  23. <span>span</span>
  24. <h2>h2</h2>
  25. <h3>h3</h3>
  26. <p>p</p>
  27. </div>
  28. </body>
  29. </html>

jQuery nextUntil() 方法

nextUntil() 方法返回两个给定参数之间的所有后面的同级元素

下面实例返回 <h2><h6> 之间的同级元素:

实例
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <style>
  5. .siblings * {
  6. display: block;
  7. border: 2px solid lightgrey;
  8. color: lightgrey;
  9. padding: 5px;
  10. margin: 15px;
  11. }
  12. </style>
  13. <script src="https://libs.baidu.com/jquery/2.1.4/jquery.min.js"></script>
  14. <script>
  15. $(document).ready(function(){
  16. $("h2").nextUntil("h6").css({"color": "red", "border": "2px solid red"});
  17. });
  18. </script>
  19. </head>
  20. <body class="siblings">
  21. <div>div (父级)
  22. <p>p</p>
  23. <span>span</span>
  24. <h2>h2</h2>
  25. <h3>h3</h3>
  26. <h4>h4</h4>
  27. <h5>h5</h5>
  28. <h6>h6</h6>
  29. <p>p</p>
  30. </div>
  31. </body>
  32. </html>

jQuery prev(), prevAll() 与 prevUntil() 方法

方法的工作原理与上述方法相同,但具有相反的功能:它们返回前面的同级元素。


jQuery 遍历参考

有关所有 jQuery 遍历方法的完整概述,请访问本站的 jQuery 遍历参考