jQuery-jQuery选择器

我是研究僧i 提交于 2019-11-29 16:42:36

jQuery选择器

基本选择器

  • #id : id选择器

    • /*
       需求:
       1. 选择id为div1的元素
       */
      $('#div1').css('background','red');
      
    • element : 元素选择器

      • /*
         2. 选择所有的div元素
         */
          $('div').css('background','blue');
        
    • .class : 属性选择器

      • /*
         3. 选择所有class属性为box的元素
         */
          $('.box').css('background','yellow');
        
    • *: 任意标签

    • selector1,selector2,selectorN : 取多个选择器的并集(组合选择器)

      • /*
         4. 选择所有的div和span元素
         */
          $('div,span').css('background','black');
        
    • selector1selector2selectorN : 取多个选择器的交集(相交选择器)

      • /*
         5. 选择所有class属性为box的div元素
         */
        $('div.box').css('background','red')
        

层次选择器

  • 层次选择器: 查找子元素, 后代元素, 兄弟元素的选择器

    1. ancestor descendant
      在给定的祖先元素下匹配所有的后代元素

      /*
       需求:
       1. 选中ul下所有的的span
       */
      $('ul span').css('background','red');
      
    2. parent>child
      在给定的父元素下匹配所有的子元素

      /*
       2. 选中ul下所有的子元素span
       */
      $('ul>span').css('background','red');
      
    3. prev+next
      匹配所有紧接在 prev 元素后的 next 元素

      /*
       3. 选中class为box的下一个li
       */
      $('.box+li').css('background','red');
      
    4. prev~siblings
      匹配 prev 元素之后的所有 siblings 元素

      /*
       4. 选中ul下的class为box的元素后面的所有兄弟元素   *代表的是前面的ul
       */
      $('ul .box~*').css('background','yellow');
      
  • <ul>
      <li>AAAAA</li>
      <li class="box">CCCCC</li>
      <li title="hello"><span>BBBBB</span></li>
      <li title="hello"><span>DDDD</span></li>
      <span>EEEEE</span>
    </ul>
    

过滤选择器

                <ul>
                  <li>AAAAA</li>
                  <li title="hello">BBBBB</li>
                  <li class="box">CCCCC</li>
                  <li title="hello">DDDDDD</li>
                  <li title="two">BBBBB</li>
                  <li style="display:none">我本来是隐藏的</li>
                </ul>
  • 在原有选择器匹配的元素中进一步进行过滤的选择器

    • 基本
    • 内容
    • 可见性
    • 属性

    过滤

    ​ :first

    ​ :last

    ​ :eq(index)

    ​ :lt

    ​ :gt

    ​ :odd

    ​ :even

    ​ :not(selector)

    ​ :hidden

    ​ :visible

    需求

    1. 选择第一个div

      $('div:first').css('background','red');
      
    2. 选择最后一个class为box的元素

      $('.box:last').css('background','yellow');
      
    3. 选择所有class属性不为box的div

      $('div:not(.box)').css('background','blue');
      
    4. 选择第二个和第三个li元素

      $('li:gt(0):lt(2)').css('background','red');//注意这里的lt不能为3  否则则如下图所示 选中三个li
      

      在这里插入图片描述

      $('li:lt(3):gt(0)').css('background','red');
      

      在这里插入图片描述

    5. 选择内容为BBBBB的li

      $('li:contains("BBBBB")').css('background','red');
      
    6. 选择隐藏的li

      console.log($('li:hidden').length,$('li:hidden')[0]);
      
    7. 选择有title属性的li元素

      $('li[title]').css('background','red');
      
    8. 选择所有属性title为hello的li元素

      $('li[title="hello"]').css('background','red');
      

表格隔行变色

                            <table id="data">
                              <thead>
                              <tr>
                                <th>姓名</th>
                                <th>工资</th>
                                <th>入职时间</th>
                                <th>操作</th>
                              </tr>
                              </thead>
                              <tbody>
                              <tr>
                                <td>Tom</td>
                                <td>$3500</td>
                                <td>2010-10-25</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              <tr>
                                <td>Mary</td>
                                <td>$3400</td>
                                <td>2010-12-1</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              <tr>
                                <td>King</td>
                                <td>$5900</td>
                                <td>2009-08-17</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              <tr>
                                <td>Scott</td>
                                <td>$3800</td>
                                <td>2012-11-17</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              <tr>
                                <td>Smith</td>
                                <td>$3100</td>
                                <td>2014-01-27</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              <tr>
                                <td>Allen</td>
                                <td>$3700</td>
                                <td>2011-12-05</td>
                                <td><a href="javascript:void(0)">删除</a></td>
                              </tr>
                              </tbody>
                            </table>
							<script type="text/javascript">
  								$('#data>tbody>tr:odd').css('background-color','#ccccff');
							</script>

$('#data>tbody>tr:odd').css('background-color','#ccccff');


标签选择器

                            <form>
                              用户名: <input type="text"/><br>
                              密 码: <input type="password"/><br>
                              爱 好:
                              <input type="checkbox" checked="checked"/>篮球
                              <input type="checkbox" checked="checked"/>足球
                              <input type="checkbox" checked="checked"/>羽毛球 <br>
                              性 别:
                              <input type="radio" name="sex" value='male'/><input type="radio" name="sex" value='female'/><br>
                              邮 箱: <input type="text" name="email" disabled="disabled"/><br>
                              所在地:
                              <select>
                                <option value="1">北京</option>
                                <option value="2" selected="selected">天津</option>
                                <option value="3">河北</option>
                              </select><br>
                              <input type="submit" value="提交"/>
                            </form>
  • 需求

    • 1.选择不可用的文本输入框

      $(':text:disabled').css('background','red');
      
    • 2.显示选择爱好 的个数

      console.log($(':checkbox:checked').length);
      
    • 3.显示选择的城市名称

      $(':submit').click(function(){
        var city=$('select>option:selected').html();//选择的option的标签文本
        city=$('select').val() //选择的option的value属性
        alert(city);
      });
      

`

  • 2.显示选择爱好 的个数

    console.log($(':checkbox:checked').length);
    
  • 3.显示选择的城市名称

    $(':submit').click(function(){
      var city=$('select>option:selected').html();//选择的option的标签文本
      city=$('select').val() //选择的option的value属性
      alert(city);
    });
    
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!