Siblings have the same parent element; jquery sibling traversal is to use jQuery to traverse the DOM tree to obtain the sibling elements of the specified element. There are 7 sibling traversal methods: 1. siblings(), which can obtain all elements of the same level of the specified element; 2. next(), which can obtain the next sibling element of the element; 3. nextAll(); 4. nextUntil(); 5. prev(), which can obtain the upper-level sibling elements of the element; 6. prevAll(); 7. prevUntil().
The operating environment of this tutorial: windows7 system, jquery3.6 version, Dell G3 computer.
Sibling traversal in jquery
Siblings have the same parent element.
JQuery can traverse the sibling elements of an element in the DOM tree.
Sibling traversal method
In jquery, there are generally seven methods for querying sibling elements: siblings(), next(), nextAll(), nextUntil(), prev(), prevAll(), prevUntil()
siblings() method, mainly used to obtain all elements of the siblings of the specified element
The next() method is mainly used to obtain the next sibling element of the specified element
nextAll() method is mainly used to obtain all the elements of the next sibling element of the specified element
nextUntil() method is mainly used to obtain the next sibling element of the specified element. This sibling element must be the element between the specified element and the element set by the nextUntil() method
prev() method, mainly used to obtain the upper level sibling elements of the specified element
prevAll() method, mainly used to obtain the upper level of the specified element All sibling elements
The prevUntil() method is mainly used to obtain the previous sibling element of the specified element. This sibling element must be between the specified element and the element set by the prevUntil() method. Between the elements
we simulate these processes through the code below. In fact, jQuery handles it this way, but it is more rigorous in structure and filtering.
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <script src="http://img.mukewang.com/down/540812440001e40e00000000.js" type="text/javascript"></script> <script src="js/jquery-3.6.3.min.js"></script> <title></title> </head> <body> <button id="test1">jQuery遍历同胞</button> <button id="test2">模拟遍历同胞</button> <ul class="level-1"> <li class="item-i">I</li> <li class="item-ii">II <ul class="level-2"> <li class="item-a">A</li> <li class="item-b">B <ul class="level-3"> <li class="item-1">1</li> <li class="item-2">2</li> <li class="item-3">3</li> </ul> </li> <li class="item-c">C</li> </ul> </li> <li class="item-iii">III</li> </ul> <script type="text/javascript"> function dir(elem, dir, until) { var matched = [], truncate = until !== undefined; while ((elem = elem[dir]) && elem.nodeType !== 9) { if (elem.nodeType === 1) { if (truncate) { if (elem.nodeName.toLowerCase() == until || elem.className == until ) {//细节:元素的className不止一个; // 添加过滤id? break; } } matched.push(elem); } } return matched; } function nextAll(elem) { return dir(elem, "nextSibling"); } function prevAll(elem) { return dir(elem, "previousSibling"); } function nextUntil(elem, until) { return dir(elem, "nextSibling", until); } function prevUntil(elem, until) { return dir(elem, "previousSibling", until); } $("#test1").click(function(){ var item = $('li.item-ii'); alert(item.nextAll()[0].className) alert(item.prevAll()[0].className) alert(item.nextUntil('.end')[0].className) alert(item.prevUntil('.first')[0].className) }) $("#test2").click(function(){ var item = document.querySelectorAll('li.item-ii')[0] alert(nextAll(item)[0].className) alert(prevAll(item)[0].className) alert(nextUntil(item, '.end')[0].className)//.end表示是同胞的最后一个元素? alert(prevUntil(item, '.first')[0].className) }) </script> </body> </html>
How does jquery detect whether there are sibling elements
Checking method:
1. Use siblings() to get all sibling elements of the specified element
指定元素.siblings()
will return a jquery object containing sibling elements.
2. Use the length attribute to get the length of the jquery object
The length obtained by the length attribute is the number of sibling elements
jquery对象.length==0
If the number of sibling elements is 0, there are no sibling elements
If the number is not equal to 0, there are sibling elements
Example:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <style> .siblings,.siblings *{ display: block; border: 2px solid lightgrey; color: lightgrey; padding: 5px; margin: 15px; } </style> <script src="js/jquery-3.2.1.min.js"></script> <script type="text/javascript"> $(document).ready(function() { $("button").click(function() { var len=$("h2").siblings().length; if(len==0){ console.log("h2没有同胞元素"); }else{ console.log("h2有同胞元素,其个数为:"+len); } }); }); </script> </head> <body> <div class="siblings">div (父) <p>p(兄弟元素)</p> <span>span(兄弟元素)</span> <h2>h2(本元素)</h2> <h3>h3(兄弟元素)</h3> <p>p(兄弟元素)</p> </div> <button>检测h2是否有同胞元素</button> </body> </html>
[Recommended learning: jQuery video tutorial, web front-end video]
The above is the detailed content of what is jquery sibling traversal. For more information, please follow other related articles on the PHP Chinese website!