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