詳解JQuery過濾器選擇器


JQuery過濾器

經過一晚上的查找整理,終於整理出一套應該算最全面的JQuery選擇過濾器的方法了。所有代碼均經過測試。
首先HTML代碼

HTML Code
< html >
< head >
< script type ="text/javascript" src ="JQuery/jquery-1.5.1.js" ></ script >
</ head >
< body >
< form name ="form1" id ="form1" class ="form1" action ="" method ="post" >

< table name ="table1" id ="table1" class ="table1" >
< tr name ="tr1" id ="tr1" class ="tr1" >
< td name ="td11" id ="td11" class ="td11" nowrap >
< input type ="text" name ="text11" id ="text11" class ="text11" value ="text11" />
< input type ="button" name ="button11" id ="button11" class ="button11" value ="button11" />
</ td >
< td name ="td12" id ="td12" class ="td12" >
< input type ="text" name ="text12" id ="text12" class ="text12" value ="text12" />
< input type ="hidden" name ="hidden12" id ="hidden12" class ="hidden12" value ="hidden12" />
</ td >
< td name ="td13" id ="td13" class ="td13" >
< input type ="text" name ="text13" id ="text13" class ="text13" value ="text13" />
</ td >
</ tr >
< tr name ="tr2" id ="tr2" class ="tr2" >
< td name ="td21" id ="td21" class ="td21" >
< input type ="password" name ="password21" id ="password21" class ="password21" value ="password21" />
< input type ="radio" name ="radio21" id ="radio21" class ="radio21" value ="radio21" checked />
< input type ="checkbox" name ="checkbox21" id ="checkbox21" class ="checkbox21" value ="checkbox21" checked />
</ td >
< td name ="td22" id ="td22" class ="td22" nowrap >
< input type ="submit" name ="submit22" id ="submit22" class ="submit22" value ="submit22" />
< input type ="image" name ="image22" id ="image22" class ="image22" value ="image22" />
< input type ="reset" name ="reset22" id ="reset22" class ="reset22" value ="reset22" />
</ td >
< td name ="td23" id ="td23" class ="td23" >
< input type ="file" name ="file23" id ="file23" class ="file23" value ="file23" />
</ td >
</ tr >
< tr name ="tr3" id ="tr3" class ="tr3" >
< td name ="td31" id ="td31" class ="td31" >

< select name ="select31" size ="1" >
< option value ="select311" > option1 </ option >
< option value ="select312" selected > option2 </ option >
< option value ="select313" > option3 </ option >
</ select >

</ td >
< td name ="td32" id ="td32" class ="td32" ></ td >
< td name ="td33" id ="td33" class ="td33" ></ td >
</ tr >
</ table >
</ form >
< h1 > 你好世界! </ h1 >
</ body >
</ html >

 

 

JS代碼

1.DOM對象與JQuery包裝集

1.通過document.getElementById(),document.getElementsByName()等取的就是DOM對象或DOM對象集,前者取的是對象,后者取得DOM對象集

var text11_dom = document.getElementById( " text11 " );
var text11_dom = document.getElementsByName( " text11 " )[ 0 ];
var text11_dom = document.all.text11; // 此處text11即可以是name值也可以是id值
var text11_dom = document.all[ 10 ];

2.如果要使用JQuery提供的函數首先要構造JQuery包裝集,通過$()返回的即是JQuery包裝集。

var text11_jquery = $( " #text11 " );

2.JQuery包裝集與DOM對象互相轉換
1.DOM對象不能使用JQuery屬性方法,但DOM對象可以通過$()轉換成JQuery包裝集

var text11_dom = document.getElementById( " text11 " );
var text11_jquery = $(text11_dom);

2.JQuery包裝集可以使用部分DOM對象的屬性方法如.length,但也有個別屬性方法不能使用如.value,可以通過在JQuery包裝集后面加中括號及索引值獲取對應DOM對象

var text11_dom = $( " #text11 " )[ 0 ];

3.在each循環時或觸發事件時的this也是DOM對象

$( " #text11 " ).click( function (){
var text11_dom_value = this .value;
alert(text11_dom_value);
});

3.$符號在JQuery中代表對JQuery對象的引用,JQuery的核心方法有四個
1.jQuery(html[,ownerDocument]):根據HTML原始字符串動態創建Dom元素

$( " <div><p>Hello!</p></div> " ).appendTo( " body " );

2.jQuery( elements ):將一個或多個Dom對象封裝為jQuery包裝集,就是上面的DOM對象與JQuery包裝集轉換
3.jQuery( callback ):$(document).ready()的簡寫方式

$( function (){
alert(
" Hello! " );
});

 4.JQuery(selector[,context]):在指定范圍內查找符合條件的JQuery包裝集,context為查找范圍,context可以是DOM對象集也可以是JQuery包裝集
在所有tr標簽中查找id為text11元素的JQuery包裝集

var text11_query = $( " #text11 " , " tr " );

===================jQuery選擇器===================

1. 基礎選擇器 Basics
1.根據標簽名進行選擇

var input_query = $( " input " );

2.根據id值選取

var text11_query = $( " #text11 " );

 3.根據class值進行選取

var text11_query = $( " .text11 " );

 4.同時選擇多個符合條件的JQuery包裝集用,號分隔條件

var text_query = $( " #text11,.text12 " );

 5.選擇所有DOM元素

var all_query = $( " * " );

2.層次選擇器 Hierarchy
1.從所有tr標簽中獲取其下面的所有id值為text11的元素

var text11_query = $( " tr #text11 " );

 2.獲取所有td標簽下的所有直接input子元素

var input_query = $( " td>input " );

 3.獲取id為text11元素后面的class為button11元素,只獲取一個符合條件的元素。text11與button11在地位上屬於同級關系

var button11_query = $( " #text11+.button11 " );

 4.獲取id為text11元素后面的所有class為button11的元素

var button11_query = $( " #text11~.button11 " );

3.基本過濾器 Basic Filters
1.獲取第一個input元素

var input_query = $( " input:first " );

 2.獲取最后一個input元素

var input_query = $( " input:last " );

 3.獲取所有未被選中的input元素

var input_query = $( " input:not(:checked) " );

 4.第一個input元素算一,查找所有第奇數個的input元素

var input_query = $( " input:even " );

 5.從第二個input算起,查找所有第偶數個的input元素

var input_query = $( " input:odd " );

 6.查找索引為1的input元素,索引值從0算起

var input_query = $( " input:eq(1) " );

 7.查找索引大於0的所有input元素

var input_query = $( " input:gt(0) " );

 8.查找索引小於2的所有input元素

var input_query = $( " input:lt(2) " );

 9.獲取頁面所有<h>標題元素

var h_query = $( " :header " );

 10.獲取所有正在執行動畫效果的元素

var animated_query = $( " :animated " );

4. 內容過濾器 Content Filters
1.查找所有html內容含有"你好世界!"的h1元素

var h1_query = $( " h1:contains('你好世界!') " );

 2.獲取所有不含子標簽或html內容為空的td元素

var td_query = $( " td:empty " );

 3.查找所有含有input子元素的td元素

var td_query = $( " td:has(input) " );

 4.查找所有含有子標簽或有html內容的td元素

var td_query = $( " td:parent " );

5.可見性過濾器  Visibility Filters
1.查找所有隱藏的input元素

var input_query = $( " input:hidden " );

 2.查找所有可見的input元素

var input_query = $( " input:visible " );

6.屬性過濾器 Attribute Filters
以下id,name等屬性名,也可換成其他屬性名,或自定義的屬性名
1.查找所有含有id屬性的input元素

var input_query = $( " input[id] " );

 2.查找name值為text11的input元素

var input_query = $( " input[name='text11'] " );

 3.查找name值不等於text11的所有input元素

var input_query = $( " input[name!='text11'] " );

 4.查找name值以text開頭的input元素

var input_query = $( " input[name^='text'] " );

 5.查找name值以11結尾的所有input元素

var input_query = $( " input[name$='11'] " );

 6.查找name值中含有ext的所有input元素

var input_query = $( " input[name*='ext'] " );

 7.查找所有含有id屬性並且name值中含有ext的input元素

var input_query = $( " input[id][name*='ext'] " );

7.子元素過濾器 Child Filters
1.查找所有在父元素中的所有子元素中排第2的input元素
nth-child()里參數可選even在這里算偶數,odd在這里算奇數,n任意數即選取所有有父元素的input元素,數字是直接選排在第幾個的input元素,第一個input元素算一

var input_query = $( " input:nth-child(2) " );

2.查找所有在父元素中的所有子元素中排第一的input元素

var input_query = $( " input:first-child " );

 3.查找所有在父元素中所有子元素中排最后一個的input元素

var input_query = $( " input:last-child " );

 4.查找所有在父元素中是唯一子元素的input元素

var input_query = $( " input:only-child " );

8.表單選擇器 Forms
1.查找所有input元素

var input_query = $( " :input " );

 2.查找所有文本框元素

var text_query = $( " :text " );

 3.查找所有密碼框元素

var password_query = $( " :password " );

 4.查找所有復選框

var checkbox_query = $( " :checkbox " );

 5.查找所有提交按鈕元素

var submit_query = $( " :submit");

 6.查找所有圖像域元素

var image_query = $( " :image " );

 7.查找所有重置按鈕元素

var reset_query = $( " :reset " );

 8.查找所有按鈕元素

var button_query = $( " :button " );

 9.查找所有文件域元素

var file_query = $( " :file " );

9.表單過濾器 Form Filters
1.查找所有可用的input元素

var input_query = $( " input:enabled " );

 2.查找所有不可用的input元素

var input_query = $( " input:disabled " );

 3.查找所有選中的單選復選框

var input_query = $( " input:checked " );

 4.查找所有選中的下拉框

var option_query = $( " option:selected " );

 

 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM