jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等操作,在jQuery中,选择子元素是很常见的操作,本文将详细介绍如何使用jQuery选择子元素。
1、使用children()
方法
children()
方法返回匹配选择器的元素集合,这些元素是指定元素的直接子元素,如果没有匹配的元素,则返回一个空的jQuery对象。
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery children() 示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="parent"> <p>我是段落1</p> <p>我是段落2</p> <div> <p>我是段落3</p> </div> </div> <script> $(document).ready(function(){ var parent = $("#parent"); var children = parent.children(); alert("父元素的直接子元素数量:" + children.length); }); </script> </body> </html>
2、使用find()
方法
find()
方法返回匹配选择器的元素集合,这些元素是通过指定元素的后代元素进行查找的,如果没有匹配的元素,则返回一个空的jQuery对象。
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery find() 示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="parent"> <p>我是段落1</p> <p>我是段落2</p> <div> <p>我是段落3</p> </div> </div> <script> $(document).ready(function(){ var parent = $("#parent"); var children = parent.find("p"); alert("父元素的所有段落子元素数量:" + children.length); }); </script> </body> </html>
3、使用filter()
方法过滤子元素
filter()
方法返回匹配选择器的元素集合,这些元素是通过指定元素的后代元素进行查找的,如果没有匹配的元素,则返回一个空的jQuery对象,与find()
方法不同的是,filter()
方法还可以对匹配的元素进行过滤。
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery filter() 示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="parent"> <p class="paragraph">我是段落1</p> <p class="paragraph">我是段落2</p> <div> <p class="paragraph">我是段落3</p> </div> </div> <script> $(document).ready(function(){ var parent = $("#parent"); var children = parent.find("p").filter(".paragraph"); alert("父元素的所有段落子元素数量:" + children.length); }); </script> </body> </html>
4、使用next()
和prev()
方法获取相邻的兄弟元素
next()
方法返回匹配选择器的元素集合,这些元素是指定元素的下一个兄弟元素,如果没有匹配的元素,则返回一个空的jQuery对象,同样,prev()
方法返回匹配选择器的元素集合,这些元素是指定元素的上一个兄弟元素,如果没有匹配的元素,则返回一个空的jQuery对象,这两个方法只适用于兄弟元素,不适用于子元素。
示例:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>jQuery next() 和 prev() 示例</title> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </head> <body> <div id="parent"> <p class="paragraph">我是段落1</p> <p class="paragraph">我是段落2</p> <div class="div">我是div元素</div> <p class="paragraph">我是段落3</p> </div> <script> $(document).ready(function(){ var paragraph = $(".paragraph"); // 获取第一个段落元素(class为paragraph) var nextElement = paragraph.next(); // 获取第一个段落元素的下一个兄弟元素(class为div) - div元素(class为div)或文本节点(class为undefined)或null(没有下一个兄弟元素)或undefined(没有下一个兄弟元素且没有文本节点)或false(没有下一个兄弟元素且没有文本节点且没有DOM树结构)或...(其他情况)