4.Jquery過濾器

一、過濾器語法介紹

  • 對已經定位到Jquery對象中DOM對象,進行二次過濾篩選的
  • 過濾器不能單獨使用,必須聲明在選擇器後面
  • 六種過濾器(三種常見的過濾器)
  • 可以將多個過濾器放到同一個jquery函數中,進行層層過濾

html標籤屬性分類

  1. 基本屬性:絕大多數標籤都擁有的屬性【id,name,title,rowspan…】
  2. 樣式屬性:背景,字體,邊框
  3. value屬性:只存在【表單域標籤中(input,select,textarea)】
  4. 工作狀態屬性:只存在表單域標籤【checked,disabled,selected】
  5. 監聽事件屬性:onclick,onchange…

二、基本過濾器

  1. 過濾器的使用條件

    根據已經定位的DOM對象在jquery對象中存儲位置進行二次過濾篩選

  2. 語法規則

    $(“選擇器”:first):留下滿足條件的第一個DOM對象

    //定位頁面中第一個button
    $(":button":first)
    

    $(“選擇器”:last):留下滿足條件的最後一個DOM對象

    //定位頁面中最後一個button
    $(":button":last)
    

    $(“選擇器:eq(下標值)”):留下滿足條件中的指定位置的DOM對象

    //定位頁面中第三個DIV
    $("div:eq(2)")
    

    $(“選擇器:lt(下標值)”):留下滿足條件中的指定位置之前的所有DOM對象

    //頁面中前兩個checkbox
    $(":checkbox:lt(2)")
    

    $(“選擇器:gt(下標值)”):留下滿足條件中的指定位置之後的所有DOM

    //位置在第四個button之後的所有的button
    $(":button:gt(3)")
    

    實例如下:

    <body>
        <h2>以下是div</h2>
        <div id="one">我的序號是0</div>
        <div id="two" class="c02">我的序號是1</div>
        <div>
            我的序號是2
            <div class="son">我的序號是3</div>
            <div class="son">我的序號是4</div>
        </div>
        <div>我的序號是5</div>
        <h3>以下是span標籤</h3>
        <span>我是span標籤</span><br /><br />
    
        <!--定義按鈕-->
        <input type="button" id="btn01" value="選擇第一個div" onclick="func1()"/>
        <input type="button" id="btn02" value="選擇最後一個div"/>
        <input type="button" id="btn03" value="選擇id值不是one的div"/>
        <input type="button" id="btn04" value="選擇class不包含c02div"/>
        <input type="button" id="btn05" value="選擇索引號爲奇數的div元素"/>
        <input type="button" id="btn06" value="選擇索引號爲偶數的div元素"/>
        <input type="button" id="btn07" value="選擇索引號等於3的div元素" onclick="func2()"/>
        <input type="button" id="btn08" value="選擇索引號小於3的div元素" onclick="func3()"/>
        <input type="button" id="btn09" value="選擇索引號大於3的div元素" onclick="func4()"/>
        <input type="button" id="btn10" value="選擇所有標題元素"/>
    </body>
    
    function func1(){
        //選擇第一個div
        $("div:first").css("background-color","yellow");
    }
    
    function func2(){
        //選擇索引號等於3的div元素
        $("div:eq(3)").css("background-color","green");
    }
    
    function func3(){
        //選擇索引號小於3的div元素
        $("div:lt(3)").css("background-color","red");
    }
    
    function func4(){
        //選擇索引號大於3的div元素
        $("div:gt(3)").css("background-color","blue");
    }
    

    三、基本屬性過濾器

    1、過濾條件

    • 根據標籤在聲明時是否爲指定屬性進行手動賦值
    • 根據標籤的屬性內容與【指定內容】關係進行過濾
    <div>1</div>
    <div name = "two">2</div>
    <div name = "three">3</div>
    

    注: 第一個div的name屬性爲默認值""

    2、語法形式

    1. $(“選擇器[屬性名]”):留下滿足定位條件的並且 在聲明時爲指定屬性進行手動賦值 的DOM對象

      //篩選出<div name = "two">2</div>和<div name = "three">3</div>
      $("div[name]")
      

      注: <div>1</div>不屬於name屬性手動賦值

    2. $(“選擇器[屬性名 = ‘值’]”):留下滿足定位條件的並且指定屬性內容[等於]指定內容DOM

      //<div name = "two">2</div>
      $("div[name = 'two']")
      
      //<div>1</div>(默認值)
      $("div[name = '']")
      //<div>1</div>和<div name = "two">2</div>和<div name = "three">3</div>
      $("div[name != 'four']")
      
    3. $(“選擇器[屬性名 ^= ‘值’]”):留下滿足定位條件的並且指定屬性內容以【指定內容爲開頭】的所有DOM對象

      //<div name = "two">2</div>和<div name = "three">3</div>
      $("div[name ^= 't']")
      
    4. $(“選擇器[屬性名 $= ‘值’]”):留下滿足定位條件的並且指定屬性內容以【指定內容爲結尾】的所有DOM對象

      //<div name = "three">3</div>
      $("div[name $= 'e']")
      
    5. $(“選擇器[屬性名 *= ‘值’]”):留下滿足定位條件的並且指定屬性內容【包含】指定內容的所有DOM

      //<div name = "two">2</div> 和 <div name = "four">4</div>
      $("div[name *= 'o']")
      
    6. $("選擇器[屬性名1][屬性名2 *= '值'][屬性名3 ^= '值']"):多種篩選條件選擇DOM對象

    <!--定義被選擇對象-->
    <div id = "one" title = "test">zero</div>
    <div class = "c02" title = "myTest">one</div>
    <div>
        two
        <div id = "three" class = "son">three</div>
        <div title = "test" class = "son">four</div>
    </div>
    <div title = "testCase" id = "">five</div>
    <div>six</div>
    <span>我是span標籤</span>
    <br /><br />
    
    <!--定義按鈕-->
    <input type="button" id="btn01" value="選擇包含title屬性的div元素" onclick="func1()"/>
    <input type="button" id="btn02" value="選擇title屬性爲test的div元素" onclick="func2()"/>
    <input type="button" id="btn03" value="選擇title屬性不爲test的div元素" onclick="func3()"/>
    <input type="button" id="btn04" value="選擇title屬性以'te'開頭的div元素" onclick="func4()"/>
    <input type="button" id="btn05" value="選擇title屬性以'st'結尾的div元素" onclick="func5()"/>
    <input type="button" id="btn06" value="選擇title屬性包含'es'的div元素" onclick="func6()"/>
    <input type="button" id="btn07" value="選擇title屬性包含'es'的並且含有id屬性的div元素" onclick="func7()"/>
    <input type="button" id="btn08" value="選擇title屬性包含'es'的第一個div元素" onclick="func8()"/>
    
    function func1(){
        //選擇包含title屬性的div元素
        $("div[title]").css("background-color","red");
    }
    
    function func2(){
        //選擇title屬性爲test的div元素
        $("div[title = 'test']").css("background-color","yellow");
    }
    
    function func3(){
        //選擇title屬性不爲test的div元素
        $("div[title != 'test']").css("background-color","blue");
    }
    
    function func4(){
        //選擇title屬性以'te'開頭的div元素
        $("div[title ^= 'te']").css("background-color","orange");
    }
    
    function func5(){
        //選擇title屬性以'st'結尾的div元素
        $("div[title $= 'st']").css("background-color","green");
    }
    
    function func6(){
        //選擇title屬性包含'es'的div元素
        $("div[title *= 'es']").css("background-color","pink");
    }
    
    function func7(){
        //選擇title屬性包含'es'的並且含有id屬性的div元素
        $("div[title *= 'es'][id]").css("background-color","black");
    }
    
    function func8(){
        $("div[title *= 'es']:first").css("background-color","gray");
    }
    

三、工作狀態屬性過濾器

語法規則

  1. $(“選擇器:enabled”):留下滿足條件的並且處於【可用狀態】的DOM

    //定位所有處於可用的button
    $(":button:enabled")
    
  2. $(“選擇器:disabled”):留下滿足條件的並且處於【不可用狀態】的DOM

    //定位所有處於不可用的button
    $(":button:disabled")
    
  3. $(“選擇器:checked”):留下滿足條件的並且處於【選中狀態的】DOM

    //頁面中第一個被選中的checkbox
    $("checkbox:checked:first")
    
  4. $(“選擇器:selected”):留下滿足條件的並且處於【選中狀態的】DOM

    //下拉列表中被選中的option
    $("select>option:selected")
    
    <!--定義文本框-->
    文本01:<input type="text" id="text01" value="value01"/><br />
    文本02:<input type="text" id="text02" value="value02" disabled="disabled"/><br />
    文本03:<input type="text" id="text03" value="value03"/><br />
    文本04:<input type="text" id="text04" value="value04" disabled="disabled"/><br /><br />
    
    <!--定義複選框-->
    <input type="checkbox" name="interest" value="reading" checked="checked"/>讀書
    <input type="checkbox" name="interest" value="food"/>美食
    <input type="checkbox" name="interest" value="travel" checked="checked"/>旅遊
    <input type="checkbox" name="interest" value="music"/>音樂
    <input type="checkbox" name="interest" value="shopping" checked="checked"/>購物
    <br /><br />
    
    <!--定義下拉列表-->
    <select id="city">
        <option value="bj" title="beijing" selected="selected">北京</option>
        <option value="sh" title="shanghai">上海</option>
        <option value="gz" title="guangzhou">廣州</option>
        <option value="sz" title="shenzhen">深圳</option>
        <option value="hz" title="hangzhou">杭州</option>
    </select>
    <br /><br />
    
    <!--定義測試按鈕-->
    <button id="btn01" onclick="func1()">選擇可用文本框並修改其值</button>
    <button id="btn02" onclick="func2()">選擇不可用文本框並修改其值</button>
    <button id="btn03" onclick="func3()">選擇複選框被選中的元素</button>
    <button id="btn04" onclick="func4()">選擇下拉列表中被選中的元素</button>
    
    /*
    	val()
    	$obj.val():讀取jquery對象中第一個DOM對象的value屬性值
    	$obj.val("值"):爲jquery對象中所有的DOM對象的value屬性值進行統一賦值
    */
    function func1(){
        //選擇可用文本框並修改其值
        $(":text:enabled").val("可用文本框");
    }
    
    function func2(){
        //選擇不可用文本框並修改其值
        $(":text:disabled").val("不可用文本框");
    }
    
    function func3(){
        //選擇複選框被選中的元素
        $(":checkbox:checked").each(loop);
    }
    
    function loop(index,domObj){
        alert("第" + (index+1) + "個被選中的checkbox的value " + $(domObj).val());
    }
    
    function func4(){
        //選擇下拉列表中被選中的元素
        alert($("#city>option:selected").val());
    }
    
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章