jQuery學習大總結(二)jQuery選擇器完整介紹
上次主要總結了下jQuery對象與dom對象的相互轉換,今天我們看看jQuery選擇器。
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();
基本過濾選擇器
- :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選擇器了。