1. 程式人生 > >jQuery元素過濾

jQuery元素過濾

function 元素

索引過濾

  索引選擇器是jQuery過濾選擇器的一部分。與此同時,也存在功能相似的索引相關的方法,包括eq()、first()、last()

eq()

  eq()方法匹配元素的集合為指定的索引的哪一個元素。eq()方法可以接受一個整數作為參數,以0為基數。若整數為負數,則從集合中的最後一個元素開始計數 

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn1">按鈕一</button><button id="btn2">按鈕二</button><button id="btn3">按鈕三</button><script>$(‘#btn1‘).click(function(){
    $(‘li‘).eq(0).css(‘border‘,‘1px solid red‘);    
})
$(‘#btn2‘).click(function(){
    $(‘li‘).eq(-1).css(‘border‘,‘1px solid blue‘);    
})
$(‘#btn3‘).click(function(){
    $(‘li‘).eq(2).css(‘border‘,‘1px solid green‘);    
})</script>

技術分享

first()

  first()方法獲取匹配元素集合中第一個元素,該方法不接受參數

last()

  last()方法獲取匹配元素集合中最後一個元素,該方法不接受參數

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn1">按鈕一</button><button id="btn2">按鈕二</button><script>$(‘#btn1‘).click(function(){
    $(‘li‘).first().css(‘border‘,‘1px solid red‘);    
})
$(‘#btn2‘).click(function(){
    $(‘li‘).last().css(‘border‘,‘1px solid blue‘);    
})</script>

技術分享

內容過濾

  jQuery選擇器中包括內容過濾選擇器,而jQuery中也存在功能類似的內容過濾的方法,包括has()、filter()、is()、not()、map()、slice()和add()

has()

  has()方法用於篩選匹配元素集合中有相匹配的選擇器或DOM元素的後代元素的父元素

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2    <ul>
      <li>list item 2-a</li>
      <li>list item 2-b</li>
    </ul>
    </li>
    <li>list item 3</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).has(‘ul‘).css(‘border‘, ‘1px solid lightblue‘);
})</script>

技術分享

map()

  map()方法通過一個函數匹配當前集合中的每個元素

  作為參數的函數有兩個參數,第一個參照是匹配集合中的元素索引,第二個參數是當前索引的DOM元素對象

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><input value="text"><input value="text"><input value="text"><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘input‘).map(function(index,dom){
        dom.value += index;
    });
})</script>

技術分享

filter()

  filter()方法從匹配的元素集合中篩選出指定的元素,參數可以是一個選擇器字符串、一個或多個DOM元素、jQuery對象或一個函數  

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).filter(‘:even‘).css(‘border‘,‘1px solid lightgreen‘)
})</script>

技術分享

  filter()方法中作為參數的函數有兩個參數,第一個參照是匹配集合中的元素索引,第二個參數是當前索引的DOM元素對象。如果函數返回值為true,則該元素保留;否則,該元素在匹配集合中被去除

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).filter(function(index,dom){        if(!(index % 3)){
            $(dom).css(‘border‘,‘1px solid lightgreen‘)            return true;
        }
    })
})</script>

技術分享

not()

  not()方法與filter()方法正好相反,它從匹配的元素集合中移除指定的元素,參數可以是一個選擇器字符串、一個或多個DOM元素、jQuery對象或一個函數 

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).not(‘:even‘).css(‘border‘,‘1px solid lightgreen‘)
})</script>

技術分享

  not()方法中作為參數的函數有兩個參數,第一個參照是匹配集合中的元素索引,第二個參數是當前索引的DOM元素對象。如果函數返回值為true,則該元素被去除;否則,該元素在匹配集合中保留

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).not(function(index,dom){        if(!(index % 3)){
            $(dom).css(‘border‘,‘1px solid lightgreen‘)            return true;
        }
    })
})</script>

技術分享

is()

  is()方法用於判斷當前元素是否與參數相匹配,如果匹配,則返回true;否則,返回false。參數可以是一個選擇器,DOM元素,jQuery對象或函數

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><script>$(‘li‘).click(function(){    if($(this).is(‘:contains("2")‘)){
        $(this).css(‘border‘,‘1px solid black‘)
    }
})</script>

技術分享

  is()方法中作為參數的函數有兩個參數,第一個參照是匹配集合中的元素索引,第二個參數是當前索引的DOM元素對象。如果函數返回true,is()方法也返回true,如果函數返回false,is()方法也返回false

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
    <li>list item 1</li>
    <li>list item 2</li>
    <li>list item 3</li>
    <li>list item 4</li>
    <li>list item 5</li></ul><div id="result"></div><script>var i = 0;
$(‘li‘).click(function(){    ++i;    if($(this).is(function(index,dom){
        $(‘#result‘).html(dom.innerHTML);        if(i%2){            return true;    
        }
    })){
         $(this).css(‘border‘,‘1px solid black‘)
    }
})</script>

技術分享

slice()

  slice()方法根據指定的下標範圍,過濾匹配的元素集合,並生成一個新的jQuery對象 

  slice(start[,end])方法接受兩個參數:start和end

  start是一個整數,從0開始計數的下標。代表將要被選擇的元素的起始下標。如果指定的下標是一個負數,那麽代表從末尾開始計數

  end是一個整數,從0開始計數的下標。代表將要被選擇的元素的結束下標。如果指定的下標是一個負數,那麽代表從末尾開始計數。如果忽略此參數,則選擇的範圍是從start開始,一直到最後

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li>
  <li>list item 4</li>
  <li>list item 5</li></ul><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).slice(2,4).css(‘background‘, ‘red‘);
})</script>

技術分享

add()

  add()方法添加元素到匹配的元素集合。add()方法的參數可以幾乎接受任何的$(),包括一個jQuery選擇器表達式,DOM元素,或HTML片段引用

技術分享

<script src="http://cdn.bootcss.com/jquery/1.12.4/jquery.min.js"></script><ul>
  <li>list item 1</li>
  <li>list item 2</li>
  <li>list item 3</li></ul><div>div</div><button id="btn">按鈕</button><script>$(‘#btn‘).click(function(){
    $(‘li‘).add(‘div‘).css(‘background‘, ‘lightgreen‘);
})</script>

技術分享