• js进阶 11-16 jquery如何查找元素的父亲、祖先和子代、后代


    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">2
    20             <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>
     
  • 相关阅读:
    hdu4597 Play Game DP
    poj2253 Frogger Dijkstra变形
    poj1797 Heavy Transportation Dijkstra算法的简单应用
    49.将手机收藏信息保存到文件中
    48.XML保存衣服尺码信息
    47.多客户端用户登录
    46. 模拟用户登录的功能
    45.客户咨询问题
    44. 客户端发送信息给服务器端
    43.创建线程的两种方法
  • 原文地址:https://www.cnblogs.com/Renyi-Fan/p/9229911.html
Copyright © 2020-2023  润新知