如何获得jQuery中元素的第一个祖先
时间:2020-02-23 14:45:59 来源:igfitidea点击:
在本文中,我们将讨论用于获得所选HTML元素的第一个祖先的遍历方法。
jQuery API提供了" closest()"方法来执行此任务。
jQuery closest()
jQuery closest()方法返回所选HTML元素的第一个匹配的祖先元素。
该方法接受一个强制性参数,该参数会过滤掉遍历。
此方法首先通过查看当前元素开始遍历,如果它与指定的表达式匹配,它将返回当前元素,否则它将遍历DOM树直到找到与过滤器匹配的元素。
如果搜索未找到任何匹配的元素,则此方法将不返回任何内容。
这是使用最近的()方法的常规语法:
- selector.closest(filter)
- selector.closest(filter,context)
filter是传递给此方法的必需参数,可过滤出祖先搜索。
context是一个可选参数,它是一个DOM元素。
在此上下文中可以找到匹配的元素。
jQuery closest()函数示例
以下示例演示了jQuery closet()方法的用法。
<!doctype html> <html> <head> <title>jQuery Traversing closest</title> <style> div,span{ display: block; border: 3px solid lightgrey; color: black; padding: 5px; margin: 25px; width:300px; } span.highlight { background: yellow; } </style> <script src="https://code.jquery.com/jquery-2.1.1.js"></script> </head> <body> <div> Click me! Click me! You can also Click me! </div> <script> $( document ).on( "click", function( event ) { $( event.target ).closest( "span" ).toggleClass( "highlight" ); }); </script> </body> </html>
在此示例中,div元素中有三个span元素。
单击span元素时,最接近的()方法触发。
此处通过的过滤器为" span",它将首先检查当前元素是否为span。
由于单击span元素,因此该方法将返回该元素,并执行所需的操作。
其中我们使用jQuery toggleClass在CSS样式类之间切换以更改背景颜色。