jQuery基本過濾選擇器

過濾從字面上大家非常清楚,就是過濾掉自己不想要的東西,也就是說經過過濾後留下來的都是自己需要的,那麼其用到jQuery選擇器中就是透過特定的篩選規則來篩選出所需的DOM元素,jQuery選擇器的篩選規則與在CSS中的偽類選擇器語法是相同的。選擇器都以一個冒號(:)開頭。依照過濾規則的不同,我們通常會把jQuery過濾選擇器主要分為:基本過濾內容過濾可見性過濾屬性過濾子元素過濾表單物件屬性篩選器等。今天我們主要是一起探討一下其中的「基本過濾選擇器」。

我們沿著續《jQuery選擇器-層次選擇器》一文中的HTML和DOM樹形圖來一起學習今天的基本過濾選擇器。

<form class="form" action="#" method="post">
    <div class="form-item">
      <label for="name">Name:</label>
      <input name="name" type="text" class="form-text" id="name" />
  </div>
  <div class="form-item">
      <label for="lastname">LastName:</label>
        <input name="lastname" type="text" class="form-text" id="lastname" />
    </div>
    <div class="form-item">
      <label for="password">Password:</label>
        <input name="password" type="text" class="form-text" id="password" />
    </div>
  <fieldset>
      <div class="form-item">
      <label>Newsletter:</label>
      <input name="newsletter" type="text" class="text-form" id="newsletter"/>
    </div>  
 </fieldset>
 <div class="form-item">
     <input type="submit" value="submit" class="form-submit" id="submit" />
     <input type="reset" value="reset" calss="form-submit" id="reset" />
 </div>

一、基本過濾器—:first

#語法:

$('E:first')  //其中E是DOM元素,:first是过滤

描述:

選取第一個元素

傳回值:

#單一元素

實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:first').css('border','1px solid red');
   });</script>

功能:

改變表格頁面中最後一個input元素的邊框屬性。

效果:

#2、基本過濾器-:last

##語法:

$('E:last')  //其中E是DOM元素,:last是过滤

描述:

選取最後一個元素

傳回值:

單一元素

實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:last').css('border','1px solid red');
   });</script>

 

功能:

改變表單中第一個input元素的邊框屬性。

效果:

#三、基本篩選器-:not(selector)

#語法:

$("E:not(selector)")  //E表示有效果的DOM元素,而selector是用来筛选的选择器

描述:

####移除所有與給定選擇器相符的元素。 #########傳回值:#########集合元素##########實例:######
<script type="text/javascript">   $(document).ready(function(){
      $('input:not(fieldset input)').css('border','1px solid red');
   });</script>
#######功能:# ########改變除fieldset下的input的所有input元素邊框屬性#########效果:#######

從jQuery1.3後,我們selector選擇器可以支援複雜選擇器,如我們範例的後元素選擇器,我們也可以使用多元素選擇器,如:$( "E:not(div,a,p)")。

四、基本過濾選擇器—:even

語法:

$("E:even")  //E指所有有效的DOM元素,:even是指元素的索引值为偶数

描述:

選取索引值為偶數的所有元素。其中索引值從0開始計算,也就是指0,2,4...

##傳回值:

集合元素

# #實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:even').css('border','1px solid red');
   });</script>

功能:

改變頁面中所有索引值為偶數的input元素的邊框屬性。也就是input索引值為0,2,4,6等偶數的就會改變邊框屬性

#效果:

五、基本過濾選擇器——:odd

:odd和:even其實很相似,只不過:even的索引值是偶數,而:odd的索引值為奇數而以。

語法:

$("E:odd")

描述:

選取索引值是奇數的所有元素,同樣索引值從0開始計算,即1,3,5,7....

傳回值:

#集合元素

實例:

<script type="text/javascript">   $(document).ready(function(){
     $('input:odd').css('border','1px solid red');
   });</script>

功能:

改變頁面中索引值為奇數的input元素。

效果:

從上面兩個實例可以看出,其實:even就是改變奇數元素,比如說,我們上面範例中共有七個input元素,我們:even就是改變從上往下數的1,3,5,7這四個input,因為他們的索引值剛好是這幾個數字減1,從而也就是我們所說的,其索引值為偶數;而odd就是改變從上到下2,4,6這三個input,因為他們各自減1剛好值為奇數,也是我們odd索引值為奇數的說法。所以我總結了一句話:

面奇為even;面偶為odd

。 (表格的行來說例:行為單數是even,行為雙數是odd)不知道我這樣說,大家能不能理解,如果不能理解,大家可以結合實例仔細對照一下。

六、基本過濾選擇器-:eq(index)

#語法:

$("E:eq(index)")  //其中E为有效DOM元素,:eq(index)是指定一个索引值元素

描述:

選取索引值等於index的元素,其中index從0開始計算

#傳回值:

##單一元素

實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:eq(1)').css('border','1px solid red');
   });</script>
功能:

#改變頁面中input的索引值為1的元素邊框屬性

效果:

七、基本過濾選擇器——:gt(index)

語法:

$("E:gt(index)")  //其中E为有效DOM元素,:gt(index)是指定一个索引值元素

描述:

選取索引值大於index的元素,其中index從0開始計算

傳回值:

#集合元素

實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:gt(1)').css('border','1px solid red');
   });</script>

功能:

改變頁面中input的索引值大於1的元素邊框屬性

效果:

#八、基本過濾選擇器-:lt(index)

##語法:

$("E:lt(index)")  //其中E为有效DOM元素,:lt(index)是指定一个索引值元素

描述:

#選取索引值小於index的元素,其中index從0開始計算

傳回值:

集合元素

」實例:

<script type="text/javascript">   $(document).ready(function(){
      $('input:lt(1)').css('border','1px solid red');
   });</script>

##功能:

改變頁面中input的索引值小於1的元素邊框屬性

效果:

九、基本過濾選擇器-:header

語法:

$(":header") //:heaer是指页面所有标题:h1~h6
描述:

選取頁面所有的標題元素h1~h6

傳回值:

#集合元素

實例:

<script type="text/javascript">   $(document).ready(function(){
      $(':header').css('border','1px solid red');
   });</script>

功能:

改變頁面所有的標題邊框屬性

因為我們這個實例中找不到任何標題元素,所以是沒有任何效果的變化。

第十、基本過濾選擇器—:animated

#語法:

$("E:animated") //E为任何有效的DOM元素,:animated为当前正在执行动画的元素

描述:

選取目前正在執行動畫的所有元素

返回值:
###集合元素#########實例:# #####
<script type="text/javascript">   $(document).ready(function(){
      $('input:not(:animated)').css('border','1px solid red');
   });</script>
######功能:#########改變頁面中沒有執行動畫的所有input元素的邊框屬性##########效果:### ##############################
繼續學習
||
<!DOCTYPE html> <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8" /> <title></title> <script src="http://code.jquery.com/jquery-3.1.1.min.js"></script> <style> .left { width: auto; height: 120px; } .left div { width: 100px; height: 70px; padding: 5px; margin: 5px; float: left; background: #bbffaa; border: 1px solid #ccc; } .bottom { width: 800px; } .bottom div, .bottom span { display: block; width: 80px; height: 80px; margin: 5px; background: #bbffaa; float: left; font-size: 14px; } .bottom .small { width: 60px; height: 25px; font-size: 12px; background: #fab; } </style> </head> <body> <h2>可见性筛选选择器</h2> <h3>:visible/:hidden</h3> <div class="left"> <div class="div"> <a>display</a> <p id="div1" style="display:none;">display</p> </div> <div class="div"> <a>width</a> <a>height</a> <p id="div2" style="width:0;height:0">width/height</p> </div> <div class="div"> <a>visibility</a> <a>opacity</a> <p id="div3" style="visibility:hidden;opacity:0">visibility</p> </div> </div> <p id="show"></p> <script type="text/javascript"> function show (ele) { if (ele instanceof jQuery) { $("#show").html('元素的长度的 = ' + ele.length) } else { alert(ele+' 不是jQuery对象') } } </script> <script type="text/javascript"> //查找id = div1的DOM元素,是否可见 show( $('#div1:visible') ); </script> <script type="text/javascript"> //查找id = div2的DOM元素,是否可见 show( $('#div2:visible') ); </script> <script type="text/javascript"> //查找id = div3的DOM元素,是否可见 show( $('#div3:visible') ); </script> <script type="text/javascript"> //查找id = div1的DOM元素,是否隐藏 show( $('#div1:hidden') ); </script> <script type="text/javascript"> //查找id = div2的DOM元素,是否隐藏 show( $('#div2:hidden') ); </script> <script type="text/javascript"> //查找id = div3的DOM元素,是否隐藏 show( $('#div3:hidden') ); </script> </body> </html>