亲宝软件园·资讯

展开

jQuery关系查找

小白可别不举铁 人气:0

一、jQuery关系查找方法

<head>
    <style>
        *{
            margin: 0;
            padding: 0;
        }
        .box{
            width: 400px;
            height: 60px;
            border: 1px solid #000;
            margin-top: 2px;
        }
        .box p,.box h2{
            float: left;
            width: 60px;
            height: 60px;
            margin-right: 20px;
            background-color: rgb(164, 247, 233);
        }
    </style>
</head>
<body>
    <div class="box">
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <h2>h2</h2>
    </div>
    <div class="box">
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <h2>h2</h2>
    </div>
    <div class="box">
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <h2>h2</h2>
    </div>
    <div class="box">
        <p></p>
        <p></p>
        <p></p>
        <p></p>
        <h2>h2</h2>
    </div>
    <script src="../jq/jquery-1.12.4.min.js"></script>
    <script>
        var $p = $("p");
        var $box = $(".box")
        $p.click(function(){
            //点击自己,发生颜色改变
            
            //使用$()包裹this,this由指向触发事件的原生js对象,变成指向jQuery对象自己
            $(this).css("background-color","pink");
            // $(this).parent() 找到事件源的父级元素
            $(this).parent().css("background-color","skyblue");

            //siblings()
          //  $(this).siblings().css("background-color","purple");
            //除了点击的以外,它的兄弟都变成了紫色
            // 添加参数后,会按照指定的选择器在子级中进行二次选择
            $(this).siblings("h2").css("background", "purple");
            //兄弟元素同时是好标签

        })

        //通过点击div 获取它的子级元素
        $box.click(function(){
            //获取子级
           // $(this).children().css("background","pink");
            
           // 添加参数后,会按照指定的选择器在子级中进行二次选择
            $(this).children("h2").css("background", "orange");

        })

        //查找兄弟元素  sinblings()
        // 写在$P方法中
    </script>
</body>

二、jQuery其他关系查找方法

兄弟元素

 紧邻的兄弟元素方法:

  多选方法:

<style>
   *{
     margin: 0;
     padding: 0;
    }
   .box{
      border: 1px solid #000;
      background-color: white;
      width: 500px;
      height: 50px;
      margin-left: 4px;
      margin-top: 4px;
   }
  p{
     width: 50px;
     height: 50px;
     background-color: rgb(185, 185, 185);
     float: left;
     margin-right: 8px;
   }
  
  span{
       float: left;
       width: 50px;
       height: 50px;
       margin-right: 8px;
       background-color: pink;
     }
</style>
   
  <body>
      <div class="box">
          <p></p>
          <p></p>
          <p></p>
          <span></span>
          <span></span>
          <span></span>
      </div>
      <div class="box">
          <p></p>
          <p></p>
          <p></p>
          <span></span>
          <span></span>
          <span></span>
      </div>
      <div class="box">
          <p></p>
          <p></p>
          <p></p>
          <span></span>
          <span></span>
          <span></span>
      </div>
  
  
<script src="../jq/jquery-1.12.4.min.js"></script>
<script>
  var $box = $(".box")
  var $p = $("p")
          
  //实现点击一个子级标签,让它自己变成红色,使它的前面的兄弟变紫色,后面的兄弟变橘色
  var $child = $box.children();
  $child.click(function(){
     $(this).css("background-color","red")
     .prevAll().css("background-color","purple")
    $(this).css("background-color","red")
     .nextAll().css("background-color","orange")
  
  </script>
</body>

通过传递参数可以进行二次选择,参数是字符串格式的选择器,在前面或后面兄弟中选中符合选择器规定的部分。

parents()祖先级

通过该方法得到的是指定对象的包含body在内的所有祖先级元素组成的jQuery对象

通过传参进行二次选择,参数位置是字符串格式的选择器

代码示例:

 //实现点击一个子级标签,自己变红色,使它的祖先级变成蓝色
 // parents() 查找包含body在内的祖先级
 // $(this).css("background-color","red")
 // .parents().css("background-color","skyblue")       
                   
// parents()传参数,可以筛选去掉不是div的元素
 $(this).css("background-color", "red")
  .parents("div").css("background-color", "skyblue")
})

加载全部内容

相关教程
猜你喜欢
用户评论