js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代
一、总结
一句话总结:过滤或者查找的方法里面可以带参数进行进一步的选择。
1、parent()和parents()方法的区别是什么(父亲和祖先)?
parent()找父亲,parents()找祖先
父亲只有一个,所以是单数,祖先就有很多个了,所以是复数
parent() 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。parents() 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。
34// $('span').parent('.red').css('border','solid red 2px')35// $('.sp').parents('li').css('border','solid red 2px')
2、parentsUntil()如何使用?
方法的参数里面可以是标签和选择器,和juqery其它方法里面的东西一样
parentsUntil() 获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。
36$('.sp').parentsUntil('.inner').css('border','solid red 2px')
3、children()方法和contents()方法的异同(子代)?
都是找所有子元素,contents()范围更广,包括文本和注释节点
39// $('.inner').children('.red').css('border','solid red 2px')
4、jquery中如何查找一个元素的后代(后代)?
find()方法
find() 获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。
40$('.main').find('span').css('border','solid red 2px')
二、jquery如何查找元素的父亲、祖先和子代后代
1、相关知识
查找祖先元素
parent() 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。parents() 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。parentsUntil() 获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。查找后代元素
children() 获得匹配元素集合中每个元素的所有子元素。find() 获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点。不常用,了解即可
2、代码
1 <!DOCTYPE html> 2 <html lang="en"> 3 <style> 4 </style> 5 <head> 6<meta charset="UTF-8"> 7<title>演示文档</title> 8<script type="text/javascript" src="jquery-3.1.1.min.js"></script> 9<style>10 li{11 margin-top: 25px;width: 150px;12 }13</style>14 </style>15 </head>16 <body>17<ol class="main">18 <li>1</li>19 <li class="li2">220 <ul class="inner">21 <li><span>1</span></li>22 <li class="red"><span class="sp">2</span></li>23 <li><span>3</span></li>24 </ul>25 </li>26 <li>3</li>27</ol>28<input id="btn1" type="button" value='查找祖先'>29<input id="btn2" type="button" value='查找后代'>30<script type="text/javascript">31 $(function(){32 $('#btn1').click(function(){33// $('.sp').parent().css('border','solid red 2px')34// $('span').parent('.red').css('border','solid red 2px')35// $('.sp').parents('li').css('border','solid red 2px')36$('.sp').parentsUntil('.inner').css('border','solid red 2px')37 })38 $('#btn2').click(function(){39// $('.inner').children('.red').css('border','solid red 2px')40$('.main').find('span').css('border','solid red 2px')41 })42 })43</script>44 </body>45 </html>