jQuery選擇器使得獲得頁面元素變得更加容易、更加靈活,從而大大減輕了開發人員的壓力。如同蓋樓一樣,沒有磚瓦,就蓋不起樓房。得不到元素談何其他各種操作呢?可見,jQuery選擇器的重要性。當然想一下子掌握所有選擇器也是很困難的,這個得靠實踐和積累。
現在我們正式進入jQuery選擇器的學習。我們將jQuery選擇器進行分類學習,將jQuery學習器分爲以下幾種:
1、基本選擇器
- id 根據元素ID選擇
-
elementname 根據元素名稱選擇
-
classname 根據元素css類名選擇
舉例:
<input type="text" id="ID" value="根據ID選擇" />
<a>根據元素名稱選擇</a>
<input type="text" class="classname" value="根據元素css類名選擇" />
jQuery("#ID").val();
jQuery("a").text();
jQuery(".classname").val();
即可分別得到元素的值。以上三種爲最常見的選擇器,其中ID選擇器是效率最高的,在可能的情況下應該儘量使用它。
2、層次選擇器
- ancestor descendant 祖先和子孫選擇器
- parent > child 父子節點選擇器
- prev + next 同級別選擇器
- prev ~ siblings 過濾選擇器
舉例:
<div id="divTest">
<input type="text" value="投資" />
<input id="next" type="text" />
<input type="text" value="擔當" />
<input type="text" title="學習" value="學習" />
<a>1</a>
<a>2</a>
</div>
//得到div中的a標籤內容 結果爲12
jQuery("#divTest a").text();
//輸出div直接子節點 結果爲投資
jQuery("#divTest>input").val();
//輸出id爲next的後一個同級別元素 結果爲擔當
jQuery("#next+input").val();
//同上,並且是有title的元素 結果爲學習
jQuery("#next~[title]").val();
3、基本過濾選擇器
- :first 找到第一元素
- :last 找到最後一個元素
- :not(selector) 去除與給定選擇器匹配的元素
- :even 匹配索引值爲偶數的元素 從0開始計數
- :odd 匹配索引值爲奇數的元素 從0開始計數
- :eq(index) 匹配一個給定索引值元素 從0開始
- :gt(index) 匹配大於給定索引值元素
- :lt(index) 匹配小於給定索引值元素
- :header 選擇h1,h2,h3一類的標籤 (目前沒用過)
- :animated 匹配正執行動畫效果的元素 (目前沒用過)
舉例:
<div id="divTest">
<ul>
<li>投資</li>
<li>理財</li>
<li>成熟</li>
<li>擔當</li>
<input type="radio" value="學習" checked="checked" />
<input type="radio" value="不學習" />
</ul>
</div>
//第一個li內容 結果爲投資
jQuery("li:first").text();
//最後一個li內容 結果爲擔當
jQuery("li:last").text();
//input未被選中的值 結果爲不學習
jQuery("li input:not(:checked)").val();
//索引爲偶數的li 結果爲投資 成熟
jQuery("li:even").text();
//索引爲奇數的li 結果爲理財 擔當
jQuery("li:odd").text();
//索引大於2的li的內容 結果爲擔當
jQuery("li:gt(2)").text();
//索引小於1的li的內容 結果爲投資
jQuery("li:lt(1)").text();
4、內容過濾器
- :contains(text) 匹配包含給定文本的元素
- :empty 匹配所有不包含子元素或者文本的空元素
- :has(selector) 匹配含有選擇器所匹配的元素
舉例:
<div id="Test">
<ul>
<li>hyip投資</li>
<li>hyip</li>
<li></li>
<li>理財</li>
<li><a>投資</a></li>
</ul>
</div>
//包含hyip的li的內容 結果爲hyip投資 hyip
jQuery("li:contains('hyip')").text();
//內容爲空的li的後一個li內容 結果爲理財
jQuery("li:empty+li").text();
//包含a標籤的li的內容 結果爲投資
jQuery("li:has(a)").text();
5、可見性過濾器
- :hidden 匹配不可見元素
- :visible 匹配可見元素
舉例:
<ul>
<li>可見</li>
<li style="display:none;">不可見</li>
</ul>
//不可見的li的內容 結果爲不可見
jQuery("li:hidden").text();
//可見的li的內容 結果爲可見
jQuery("li:visible").text();
6、屬性過濾器
- [attribute=value] 匹配屬性是給定值的元素
- [attribute^=value] 匹配屬性是以給定值開始的元素
- [attribute$=value] 匹配屬性是以給定值結束的元素
- [attribute*=value] 匹配屬性包含給定值的元素
舉例:
<input type="text" name="hyipinvest" value="hyip投資" />
<input type="text" name="investhyip" value="投資hyip" />
<input type="text" name="google" value="HYIP" />
//name爲hyipinvest的值 結果爲hyip投資
alert(jQuery("input[name='hyipinvest']").val());
//name以hyip開始的值 結果爲hyip投資
alert(jQuery("input[name^='hyip']").val());
//name以hyip結束的值 結果爲投資hyip
alert(jQuery("input[name$='hyip']").val());
//name包含oo的值 結果爲HYIP
alert(jQuery("input[name*='oo']").val());
jQuery選擇器就總結到這裏,這些基本上都是在學習過程中遇到的,還有極少部分沒有總結出來。經過一段時間實踐,相信大家就能夠熟練的使用jQuery選擇器了。