• 锋利的JQuery-Jquery选择器


    1.css选择器

    标签选择器:a{...}

    id选择器:#note{...}

    类选择器:div.note{..}、.dream{...}

    群组选择器:td,p,div,a{...}

    后代选择器: #link a{...}

    通配选择器:*{...}

    2.jQuery选择器

    看一个小例子:

    <html>
    <head>
        <script src="../jquery-1.3.1.js" type="text/javascript"></script>
        <script type="text/javascript">
            function demo(){
                alert("demo");
            }
        </script>
    </head>
    <body>
        <p onclick="demo();">点击我</p>
    </body>
    </html>

    这段代码虽然实现了功能,但没有将网页内容和行为分离。

    <p class="demo">点击我</p>
        <script type="text/javascript">
            $(".demo").click(function(){
                alert("jQuery demo");
            })
        </script>

    这部分有点不明白,为什么我把js代码放在head里就没用了,这可能和加载顺序有关系。

    我们可以发现,他们选择器的使用方式是一样的。.demo{} --$(".demo")

    $("")获取的永远是对象,即使网页上没有此元素,因此判断元素存在与否应该使用:

        if ($("#tt").length>0)
            {
                //do something 
            }

    jQuery选择器分为基本选择器、层次选择器、过滤选择器和表单选择器。

     
     <!-- 测试的元素 -->
      <div class="one" id="one" >
     id为one,class为one的div
          <div class="mini">class为mini</div>
      </div>
    
        <div class="one"  id="two" title="test" >
         id为two,class为one,title为test的div.
          <div class="mini"  title="other">class为mini,title为other</div>
          <div class="mini"  title="test">class为mini,title为test</div>
      </div>
    
      <div class="one">
          <div class="mini">class为mini</div>
          <div class="mini">class为mini</div>
          <div class="mini">class为mini</div>
          <div class="mini"></div>
      </div>
    
    
    
      <div class="one">
          <div class="mini">class为mini</div>
          <div class="mini">class为mini</div>
          <div class="mini">class为mini</div>
          <div class="mini"  title="tesst">class为mini,title为tesst</div>
      </div>
    
    
      <div style="display:none;"  class="none">style的display为"none"的div</div>
      
      <div class="hide">class为"hide"的div</div>
     
      <div>
      包含input的type为"hidden"的div<input type="hidden" size="8"/>
      </div>
    
      
      <span id="mover">正在执行动画的span元素.</span>

    还有css

      div,span,p {
        width:140px;
        height:140px;
        margin:5px;
        background:#aaa;
        border:#000 1px solid;
        float:left;
        font-size:17px;
        font-family:Verdana;
      }
      div.mini { 
        width:55px;
        height:55px;
        background-color: #aaa;
        font-size:12px;
      }
      div.hide { 
        display:none;
      }
    • 基本选择器:
    #id $("#text")选取id为test的元素
    。class $(".test")选取所有class为test的元素
    element $("p")选取所有的<p>元素
    * $("*")选取所有元素
    selector1,selector2... $("div,span,p.myClass")选取所有<div>,<span>,和拥有class为myClass的<p>标签的一组元素
    • 层次选择器(后代元素,子元素,相邻元素,兄弟元素)
    $("ancestor descendant") $("div span")选取<div>里的所有的<span>元素
    $("parent>child") $("div>span")选取<div>元素下元素名是<span>的子元素
    $("prev+next") $(".one+div")选取class为one的下一个<div>元素
    $("pre~siblings") $("#two~div")选取id为two的元素后面的所有<div>兄弟元素

    等价关系

    $(".one+div") $(".one").next("div")
    $("#two~div") $("#prev").nextAll("div")

    siblings和$("pre~siblings")进行比较

    $("#prev~div").css("","")//选取#prev之后的所有同辈div元素
    $("#prev").nextAll("div").css("","")//同上
    $("#prev").siblings(div).css("","")//选取#prev所有同辈的div元素,无论前后位置
    • 过滤选择器

    基本过滤选择器

    :first $("div:first")选取所有<div>元素中第一个<div>元素
    :last $("div:last")选取所有<div>元素中最后一个<div>元素
    :not(selector) $("input:not(.myClass)")选取class不是myClass的<input>元素
    :even $("input:even")选取索引是偶数的<input>元素
    :odd $("input:odd")选取索引是奇数的<input>元素
    :eq(index) $("input:eq(1)")选取索引等于1的<input>元素
    :gt(index) $("input:gt(1)")选取索引大于1的<input>元素
    :lt(index) $("input:lt(1)")选取索引小于1的<input>元素
    :header $(":header")选取网页中所有的<h1><h2><h3>...
    :animated $("div:animated")选取正在执行动画的元素

    内容过滤选择器

    :contains(text) $("div:contains('我')")选取含有文本我的<div>元素
    :empty $(div:empty)选取不包含子元素的<div空元素>
    :has(selector) $("div:has(p)")选取含所有<p>元素的<div>元素
    :parent $("div:parent")选取拥有子元素的<div>元素

    可见性过滤选择器

    :hidden $(":hidden")选取所有不可见的元素,包括<input type="hidden"/><div style="display:none">和<div style="visibility:hidden">等元素,如果只想选取<input>元素,可以使用$("input:hidden")
    :visable $("div:visible")选取所有可见的<div>元素

    属性过滤器

    [attribute] $("div[id]")选取拥有属性id的元素
    [attribute= value] $("div[tittle=test]")获取title为“test”的<div>元素
    [attribute!= value] $("div[tittle!=test]")获取title不等于“test”的<div>元素(没有属性title的<div>也会被选取)
    [attribute^= value] $("div[tittle^=test]")选取属性tittle以test开始的<div>元素
    [attribute$= value] $("div[tittle$=test]")选取属性tittle以test结束的<div>元素
    [attribute*= value] $("div[tittle*=test]")选取属性tittle含有test的<div>元素
    [selector][selector][selector] $("div[id][tittle$=''test]")选取拥有属性id,并且属性title以"test"结束的<div>元素

    子元素过滤选择器

    :nth-child(index

    /even/odd/equatin)

    eq(index)只匹配一个元素,而:nth-child将为每个父元素匹配子元素,并且:nth-child(index)

    的index从1开始

    :first-child 选取每个父元素的第一个子元素
    :last-child 选取们每个父元素的最后一个子元素
    :only-child 如果摸个元素是他的父元素中唯一的子元素,那么匹配,否则不匹配。

    表单对象属性过滤选择器

    :enabled $("#form1 :enabled")选取id为“form1”的表单内的所有可用元素
    :disabled $("#form1 :disabled")选取id为“form1”的表单内的所有不可用元素
    :checked $("input:checked");选取所有被选中的<input>元素
    :selected $("select :selected");选取所有被选中的选项元素

    表单选择器

     

    :input $(":input")选取所有<input>,<textarea>,<select>,<button>元素
    :text $(":text")选取所有的单行文本框
    :password $(":password")获取所有密码框
    :radio $(":radio")h获取所有单选框
    :checkbox $(":checkbox")获取所有的复选框
    :submt $(":submt")获取所有的提交按钮
    :image $(":image")获取所有的图片按钮
    :reset $(":reset")获取所有重置按钮
    :button $(":button")获取所有按钮
    :file $(":file")获取所有上传文件
    :hidden $(":hidden")选取所有不可见元素
    • 选择器中的一些注意事项:

    一、选择器中含有特殊字符

    1.含有".","#","[","("等,要用//转移

    比如:<div id="id#d">bb</div>

    $('#id#b')就是错的,要用$('#id//#b')

    2.属性选择器的引号问题

    低版本:$('div[@title="test"]');

    现在正确写法:$('div[title="test"]')

    二、选择器中含有空格符的注意事项

    $('.test :hidden'):选取class 为test的元素里面的隐藏元素

    $('.test:hidden'):选取隐藏的class为"test"的元素

    案例研究:略

  • 相关阅读:
    python中的time模块
    CSS 布局
    8 Function类型
    2 node 核心
    1 node 简介
    13 对象
    JS 算法一
    JS 模块化
    1 谈谈section标签
    JS 练习一
  • 原文地址:https://www.cnblogs.com/sunhan/p/3542410.html
Copyright © 2020-2023  润新知