在jQuery中,如果想要查找当前元素的后代元素(子元素、孙元素等),我们有以下3种方法:

  • (1)children()
  • (2)find()
  • (3)contents()

一、children()

在jQuery中,我们可以使用children()方法来查找当前元素的“子元素”。注意,children()方法只能查找子元素,不能查找其他后代元素。

语法:

$().children(selector)

说明:

selector是一个可选参数,它是一个选择器,用来查找符合条件的子元素。当参数省略,表示选择所有子元素;当参数不省略时,表示选择符合条件的子元素。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style lang=""> p{margin:6px 0;} </style> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function(){ $("#wrapper").hover(function(){ $(this).children(".select").css("color", "red"); },function(){ $(this).children(".select").css("color", "black"); }) }) </script> </head> <body> <div id="wrapper"> <p>子元素</p> <p class="select">子元素</p> <div> <p>孙元素</p> <p class="select">孙元素</p> </div> <p>子元素</p> <p class="select">子元素</p> </div> </body> </html>

默认情况下,预览效果如下图所示。

当鼠标移到id="wrapper"的div元素上面,此时预览效果如下图所示。

分析:

$(this).children(".select")表示获取当前元素下的class="select"的子元素。我们可以发现,class="select"的孙元素却不会被选中。

二、find()

在jQuery中,我们可以使用find()方法来查找当前元素的“后代元素”。注意,find()方法不仅能查找子元素,还能查找其他后代元素。

语法:

$().find(selector)

说明:

selector是一个可选参数,它是一个选择器,用来查找符合条件的后代元素。当参数省略,表示选择所有后代元素;当参数不省略时,表示选择符合条件的后代元素。

举例:

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style lang=""> p{margin:6px 0;} </style> <script src="js/jquery-1.12.4.min.js"></script> <script> $(function(){ $("#wrapper").hover(function(){ $(this).find(".select").css("color", "red"); },function(){ $(this).find(".select").css("color", "black"); }) }) </script> </head> <body> <div id="wrapper"> <p>子元素</p> <p class="select">子元素</p> <div> <p>孙元素</p> <p class="select">孙元素</p> </div> <p>子元素</p> <p class="select">子元素</p> </div> </body> </html>

默认情况下,预览效果如下图所示。

当鼠标移到id="wrapper"的div元素上面,此时预览效果如下图所示。

分析:

$(this).find(".select")表示不仅会选取当前元素下的class="select"的子元素,还会选取class="select"的孙元素。

三、contents()

在jQuery中,我们可以使用contents()方法来获取子元素及其内部文本。contents()方法和children()方法相似,不同的是,contents()返回的jQuery对象中不仅包含子元素,还包含文本内容。而children()方法返回的jQuery对象中只会包含子元素,不包含文本内容。

在实际开发中,我们极少会用到contents()方法,因此小伙伴们不需要深入了解,这里简单认识一下即可。