zoukankan      html  css  js  c++  java
  • 选择器

    JQuery选择器

    正文

    JQuery选择器

        通过一个例子来分辨这些选择器,首先做一个初始的页面:

    1、HTML

     View Code

    2、初始效果

    一、基本选择器

    1、ID选择器

      eg:改变id为one的元素的背景颜色

    首先在<head>处引入JQuery库文件:

    <script type="text/javascript" src="../JQuery库文件/jquery-1.12.1.min.js"></script>

    然后编辑JQuery代码:

    1 <!--编写JQuery代码-->
    2     <script type="text/javascript">
    3         $("document").ready(function(){
    4             $("#one").css("background-color","#bbffaa");    //改变id为one的元素的背景颜色
    5         })
    6     </script>

    效果图:

    !!!所有 jQuery 函数位于一个 document ready 函数中:

    $(document).ready(function(){
    
    });

    这是为了防止文档在完全加载(就绪)之前运行 jQuery 代码。如果在文档没有完全加载之前就运行函数,操作可能失败。!!!

    2、类选择器

    1 <!--编写JQuery代码-->
    2     <script type="text/javascript">
    3         $("document").ready(function(){
    4             $(".mini").css("background-color","#bbffaa");    //改变class为mini的所有元素的背景颜色
    5         })
    6     </script>

    效果:

    3、标签选择器

    将代码的关键语句改为:

     $("div").css("background-color","#bbffaa");    //改变元素名是div的所有元素的背景颜色

    效果图:

    4、通配选择符

     $("*").css("background-color","#bbffaa");    //改变所有元素的背景颜色

    效果图:

    5、群组选择器

      eg:改变所有<span>元素和id为two的元素的背景颜色

     $("span,#two").css("background-color","#bbffaa");    //改变所有<span>元素和id为two的元素的背景颜色

    效果图:

    二、层次选择器

    1、$("ancestor descendant")

    改变<body>内所有<div>的背景颜色:
    1 <!--编写JQuery代码-->
    2     <script type="text/javascript">
    3         $("document").ready(function(){
    4             $("body div").css("background-color","#bbffaa");    //改变<body>内所有<div>的背景颜色
    5         })
    6     </script>

    2、$("parent>child")

    改变<body>内子<div>元素的背景颜色:
     $("body > div").css("background-color","#bbffaa");    //改变<body>内子<div>元素的背景颜色

    3、$("prev+next")

    改变class为one的下一个<div>同辈元素的背景色:(!!!下一个同辈元素,相当于next()方法)

     $(".one + div").css("background-color","#bbffaa");    //改变class为one的下一个<div>同辈元素的背景色

    也可以写为:

     $(".one").next("div").css("background-color","#bbffaa");   

    4、$("prev~siblings")

    改变id为two的元素后面的所有<div>同辈元素的背景色:(!!!之后的所有同辈元素,相当于nextAll()方法)

    $("#two ~ div").css("background-color","#bbffaa");

    相当于:

     $("#two").nextAll("div").css("background-color","#bbffaa");   

    三、过滤选择器

      过滤选择器主要是通过特定的过滤规则来筛选出所需的DOM元素,过滤规则与CSS中的伪类选择器语法相同,即选择器都以一个冒号(:)开头。

    1、基本过滤选择器

     

     eg:

    (1)改变第一个和最后一个<div>元素的背景色

    1 <script type="text/javascript">
    2         $("document").ready(function(){
    3             $("div:first").css("background-color","#bbffaa");
    4             $("div:last").css("background-color","#bbffaa");
    5         })
    6 </script>

    (2)改变class不为one的<div>元素的背景色

     $("div:not(.one)").css("background-color","#bbffaa");

    (3)根据索引改变背景色(!!索引值从0开始!!)

     $("document").ready(function(){
         $("div:eq(3)").css("background-color","#bbffaa");   //改变索引值等于3的<div>元素的背景色
         $("div:gt(3)").css("background-color","red");   //改变索引值小于3的<div>元素的背景色
         $("div:lt(3)").css("background-color","blue");   //改变索引值大于3的<div>元素的背景色
     })

    (4)改变正在执行动画的元素的背景色

    $(":animated").css("background-color","#bbffaa");   //改变正在执行动画的元素的背景色

    (5)改变当前获取焦点的元素的背景色

    复制代码
     1 <!DOCTYPE html>
     2 <html>
     3 <head lang="en">
     4     <meta charset="UTF-8">
     5     <title>选择器</title>
     6     <script type="text/javascript" src="../JQuery库文件/jquery-1.12.1.min.js"></script>
     7     <script type="text/javascript">
     8         $("document").ready(function(){
     9             $("#button1").click(function(){
    10                 $(":focus").css("background-color","#bbffaa");   //改变当前获取焦点的元素的背景色
    11             })
    12         })
    13     </script>
    14 
    15 </head>
    16 <body>
    17     <input type="button" value="改变当前获取焦点的元素的背景色">
    18     <input type="button" value="改变当前获取焦点的元素的背景色" id="button1">
    19 </body>
    20 </html>
    复制代码

    效果:

    2、内容过滤选择器

     eg:

    (1)改变含有class为mini元素的<div>元素的背景色

    1 <script type="text/javascript">
    2         $("document").ready(function(){
    3             $("div:has('.mini')").css("background-color","#bbffaa");   //改变含有class为mini元素的<div>元素的背景色
    4         })
    5 </script>

    (2)改变含有子元素(包括文本元素)的<div>元素的背景色

                $("div:parent").css("background-color","#bbffaa");   //改变含有子元素(包括文本元素)的<div>元素的背景色

    3、可见性过滤选择器

     在可见性选择器中,需要注意的是选择器:hiddden,它不仅包括样式属性display为“none”的元素,也包括文本隐藏域(<input type="hidden"/>)和visibility:hidden之类的元素。

    4、属性过滤选择器

     eg:

    (1)改变含有属性title的<div>元素的背景色

      $("div[title]").css("background-color","#bbffaa");   //改变含有属性title的<div>元素的背景色

    (2)改变属性title值等于“test”的<div>元素的背景色

                $("div[title=test]").css("background-color","#bbffaa");   //改变属性title值等于“test”的<div>元素的背景色

    (3))改变属性title值不等于“test”的<div>元素的背景色

     $("div[title!=test]").css("background-color","#bbffaa");   //改变属性title值不等于“test”的<div>元素的背景色

    (4)改变属性title值以te开始的<div>元素的背景色

     $("div[title^=te]").css("background-color","#bbffaa");   //改变属性title值以te开始的<div>元素的背景色

    (5)改变属性title值以est结束的<div>元素的背景色

     $("div[title$=est]").css("background-color","#bbffaa");   //改变属性title值以est结束的<div>元素的背景色

    (6))改变属性title值含有“es”的<div>元素的背景色

      $("div[title*=es]").css("background-color","#bbffaa");   //改变属性title值含有“es”的<div>元素的背景色

    (7))改变含有属性id,并且属性title值含有“es”的<div>元素的背景色

     $("div[id][title*=es]").css("background-color","#bbffaa");   //改变含有属性id,并且属性title值含有“es”的<div>元素的背景色

    5、子元素过滤选择器

    !!!这里的index从1开始!!!

    :nth-child()选择器是很常用的子元素过滤选择器,详细功能如下:

      (1):nth-child(even):选取每个父元素下的索引值是偶数的元素

      (2):nth-child(odd):选取每个父元素下的索引值是奇数的元素

      (3):nth-child(2):选取每个父元素下的索引值是2的元素

      (4):nth-child(3n):选取每个父元素下的索引值是3的倍数的元素(n从1开始)

      (5):nth-child(3n+1):选取每个父元素下的索引值是(3n+1)的元素(n从1开始)

    6、表单对象属性过滤选择器

    重新设计一个表单页面如下:

    HTML代码:

     View Code

    eg:

    (1)改变表单内可用<input>元素的值

    1 <script type="text/javascript">
    2         $("document").ready(function(){
    3             $("input:enabled").val("这里变化了!!!");
    4         })
    5  </script>

    (2)获取多选框选中的个数

    复制代码
     1 <script type="text/javascript">
     2         $("document").ready(function(){
     3             $(":checkbox").click(countChecked);    //这里的相关知识点在第四节会讲到
     4             function countChecked() {
     5                 var n = $("input:checked").length;   //获取多选框选中的个数
     6                 $("div").eq(0).html("<strong>有"+n+" 个被选中!</strong>");  //在第一个div处输入结果
     7             }
     8             countChecked();//进入页面就调用.
     9         })
    10  </script>
    复制代码

    效果:

    (3)获取下拉框选中的内容

    复制代码
     1 <script type="text/javascript">
     2         $("document").ready(function(){
     3             $("select").change(function () {
     4                 var str = "";
     5                 $("select :selected").each(function () {
     6                     str += $(this).text() + ",";
     7                 });
     8                 $("div").eq(1).html("<strong>你选中的是:"+str+"</strong>");
     9             }).trigger('change');
    10             // trigger('change') 在这里的意思是:
    11             // select加载后,马上执行onchange.
    12             // 也可以用.change()代替.
    13         })
    14  </script>
    复制代码

    四、表单选择器

    eg:获得表单内表单元素的个数:

    $(":input").length;

    五、案例研究:网站品牌列表效果

    一、目标效果如图所示:

                             

       如图所示,点击“显示全部品牌”,就可以显示其他未显示的品牌,并且会将推荐的品牌高亮显示。

    二、JQuery代码

    复制代码
     1 <script type="text/javascript">
     2         $("document").ready(function(){  //  等待DOM加载完毕.
     3             var $category = $('ul li:gt(5):not(:last)');  //  获得索引值大于5的品牌集合对象(除最后一条)
     4             $category.hide();    //  隐藏上面获取到的jQuery对象。
     5             var $toggleBtn = $('div.showMore > a');    //  获取“显示全部品牌”按钮
     6             $toggleBtn.click(function(){     //  点击“显示全部品牌”按钮
     7                 if($category.is(":visible")){   //如果获得索引值大于5的品牌集合对象(除最后一条)是显示的
     8                     $category.hide();       //  隐藏$category
     9                     $(this).find('span')
    10                             .text("显示全部品牌");     //改变文本
    11                     $('ul li').removeClass("promoted");        // 去掉高亮样式
    12                 }
    13                 else{    //如果获得索引值大于5的品牌集合对象(除最后一条)是隐藏的
    14                     $category.show();         //  显示$category
    15                     $(this).find('span')
    16                             .text("精简显示品牌");      //改变文本
    17                     $('ul li').filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')")  //filter() 方法将匹配元素集合缩减为匹配指定选择器的元素。
    18                             .addClass("promoted");    //添加高亮样式
    19                 }
    20                 return false;    //超链接不跳转
    21             })
    22         })
    23 </script>
    复制代码

    三、完整的HTML代码

     View Code

     

     

     

    分类: Jquery

  • 相关阅读:
    《java网络编程》
    画类图的使用工具----转载
    桌面应用要素
    java桌面应用
    java网络程序
    网络程序
    java中的数据类型
    数据类型要素
    java中的设计模式
    输入一个年龄,判断年龄范围
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/5377655.html
Copyright © 2011-2022 走看看