jquery選擇器大全 全面詳解jquery選擇器
選擇器并沒(méi)有一個(gè)固定的定義,在某種程度上說(shuō),jQuery的選擇器和樣式表中的選擇器十分相似。選擇器具有如下特點(diǎn):
1.簡(jiǎn)化代碼的編寫
2.隱式迭代
3.無(wú)須判斷對(duì)象是否存在
其中“$”是選擇器不可缺少的部分,在jQuery庫(kù)中,$就是jQuery的一個(gè)簡(jiǎn)寫形式,比如$("#foo")和jQuery("#foo")是等價(jià)的,$.ajax和jQuery.ajax是等價(jià)的。如果沒(méi)有特別說(shuō)明,可以把程序中的$符號(hào)都理解為jQuery的簡(jiǎn)寫形式。
現(xiàn)在我們正式進(jìn)入jQuery選擇器的學(xué)習(xí)。根據(jù)選擇器的功能習(xí)慣將選擇器進(jìn)行分類,下面將不同類型的分類器進(jìn)行分類,并且分別進(jìn)行解釋說(shuō)明,使讀者達(dá)到掌握程度。
一、基本選擇器
基本選擇器包括5種選擇器:#id、element、.class、*和selectorl,selector2.selectorN,下面將配合實(shí)例分別介紹每種選擇器的作用及使用方法。
1.#id選擇器
#id選擇器根據(jù)給定的ID匹配一個(gè)元素。如果選擇器中包含特殊字符,可以用兩個(gè)斜杠轉(zhuǎn)義,其返回值為Array<Element>。
$("#id") <div id="id">選中 </div>
2.element選擇器
element選擇器是一個(gè)用于搜索的元素。指向DOM節(jié)點(diǎn)的標(biāo)簽名。其返回值為Array<Element(s)>。
3.class選擇器
.class選擇器根據(jù)給定的類匹配元素,是一個(gè)用以搜索的類。一個(gè)元素可以有多個(gè)類,只要有一個(gè)符合就能被匹配到,其返回值為Array<Element(s)>。
舉例:
<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();
即可分別得到元素的值。以上三種為最常見(jiàn)的選擇器,其中ID選擇器是效率最高的,在可能的情況下應(yīng)該盡量使用它。
4.*選擇器
*選擇器多用于結(jié)合上下文來(lái)搜索,匹配所有元素的選擇器。其返回值為Array<Element(s)>。
5.selector1,selector2,selectorN選擇器
這類選擇器選擇器即將每一個(gè)選擇器匹配到的元素合并后一起返回。你可以指定任意多個(gè)選擇器,并將匹配到的元素合并到一個(gè)結(jié)果內(nèi),其返回值為:Array<Element(s)>。在下例中通過(guò)對(duì)選擇的項(xiàng)進(jìn)行CSS操作來(lái)使讀者清晰地了解selector1,selector2,selectorN選擇器的作用。
二、層級(jí)選擇器
層級(jí)選擇器包括5種形式:ancestor、descendant、parent > child、prev + next和prev ~ siblings。下面配合實(shí)例分別詳細(xì)介紹每種選擇器的作用及使用方法。
1.a(chǎn)ncestor descendant選擇器
其指在給定的祖先元素下匹配所有的后代元素,作為參數(shù)的ancestor代表任何有效的選擇器,而descendant則用以匹配元素的選擇器,并且它是第一個(gè)選擇器的后代。其返回值為:Array<Element(s)>。
2.parent>child選擇器
parent>child選擇器代表在給定的父元素下匹配所有的子元素。兩個(gè)參數(shù)分別代表的意思如下:parent代表任何有效選擇器;child用以匹配元素的選擇器,并且它是第一個(gè)選擇器的子元素。其返回值為Array<Element(s)>。
3.prev+next選擇器
這類選擇器的作用是匹配所有緊接在prev元素后的next元素。兩個(gè)參數(shù)分別代表的意思如下:prev代表任何有效選擇器;next代表一個(gè)有效選擇器并且緊接著第一個(gè)選擇器。其返回值為Array<Element(s)>。
4.prev ~ siblings選擇器
prev ~ siblings選擇器代表匹配prev元素之后的所有siblings元素。兩個(gè)參數(shù)分別代表的意思如下:prev代表任何有效選擇器;siblings代表一個(gè)選擇器,并且它作為第一個(gè)選擇器的同輩。其返回值為Array<Element(s)>。
舉例:
<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();
三、過(guò)濾選擇器
過(guò)濾選擇器主要通過(guò)特定的過(guò)濾規(guī)則來(lái)篩選出所需要的DOM元素,過(guò)濾規(guī)則與CSS中的偽類選擇器語(yǔ)法相同,即選擇器都以一個(gè)冒號(hào)開(kāi)頭。
過(guò)濾選擇器涉及的內(nèi)容較多,總共有6 種類型,但是其可以進(jìn)行歸類。下面我們將對(duì)各種類型的選擇器進(jìn)行詳細(xì)講解。
1.基本過(guò)濾選擇器
基本過(guò)濾選擇器是過(guò)濾選擇器中最常用的一種,其主要包括以下幾種形式,在此做詳細(xì)說(shuō)明:
(1):first/:last選擇器。
(2):not選擇器。
(3):even和:odd選擇器。
(4):eq:gt、:lt、選擇器。
(5):header選擇器。
(6):animated選擇器。
舉例:
<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();
2.內(nèi)容過(guò)濾選擇器
內(nèi)容過(guò)濾選擇器主要包括:contains、:empty、:has、:parent 4種過(guò)濾器,這部分過(guò)濾器是對(duì)上面介紹基本過(guò)濾選擇器的一個(gè)補(bǔ)充,對(duì)于頁(yè)面選取、設(shè)置元素顯示等方面發(fā)揮著重要的作用。下面將對(duì)各選擇器進(jìn)行詳細(xì)的介紹。
(1):contains選擇器。
(2):empty選擇器。
(3):has選擇器。
(4):parent選擇器。
舉例:
<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();
3.可見(jiàn)性過(guò)濾選擇器
可見(jiàn)性過(guò)濾選擇器比較簡(jiǎn)單,其包含兩種選擇器,主要是用來(lái)匹配所有可見(jiàn)元素和不可見(jiàn)元素。下面將會(huì)對(duì)這兩種選擇器進(jìn)行詳細(xì)介紹。
(1):hidden選擇器。
(2):visible選擇器。
舉例:
<ul> ??? <li>可見(jiàn)</li> ??? <li style="display:none;">不可見(jiàn)</li> </ul> //不可見(jiàn)的li的內(nèi)容 結(jié)果為不可見(jiàn) jQuery("li:hidden").text(); //可見(jiàn)的li的內(nèi)容 結(jié)果為可見(jiàn) jQuery("li:visible").text();
4.屬性過(guò)濾選擇器
屬性過(guò)濾選擇器是用于匹配包含給定屬性的元素,當(dāng)然也可以匹配不包含此屬性的元素等。屬性過(guò)濾選擇器共含有以下7種選擇器。
(1) [attribute]選擇器。
(2)[attribute=value]、[attribute!=value]選擇器(此處包含兩種)。
(3)[attribute^=value]、[attribute$=value]、[attribute*=value]選擇器(此處包含三種)。
(4)[selector][selector2]選擇器。
舉例:
<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開(kāi)始的值 結(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());
5.子元素過(guò)濾選擇器
html由層層嵌套在一起的標(biāo)簽組成,由于一些標(biāo)簽需要進(jìn)行單獨(dú)處理,如何選取一個(gè)或者一些特定的嵌套標(biāo)簽在程序中就成為了一個(gè)問(wèn)題。jQuery提供了子元素過(guò)濾選擇器解決了這個(gè)問(wèn)題。它包括4個(gè)選擇器,具體內(nèi)容將在下面詳細(xì)講解。
(1):nth-child選擇器。
(2):first-child、:last-child選擇器(兩種)。
(3):only-child選擇器。
6.表單對(duì)象屬性過(guò)濾選擇器
這部分內(nèi)容相當(dāng)簡(jiǎn)單,只包含四種類型的選擇器,這些選擇器分別用來(lái)匹配可用元素或者不可用元素、選中元素等。下面將以實(shí)例的形式對(duì)此部分內(nèi)容進(jìn)行講解。
(1):enabled、:disabled選擇器。
(2):checked選擇器。
(3):selected選擇器。
表單過(guò)濾選擇器是用于處理html中表單的選擇器,其中不僅僅包括經(jīng)常用到的按鈕、文本域、單選框、復(fù)選框等,還涉及了很少用到的圖片、隱藏域、文件上傳等標(biāo)簽。下面將會(huì)對(duì)這些選擇器進(jìn)行具體介紹。
(1):input選擇器。
(2):text、:password選擇器。
(3):radio、:checkbox選擇器。
(4):submit、:image、:reset、:button、:file選擇器。
(5):hidden選擇器。
JQuery選擇器就總結(jié)到這里,這些基本上都是在學(xué)習(xí)過(guò)程中遇到的,還有極少部分沒(méi)有總結(jié)出來(lái)。經(jīng)過(guò)一段時(shí)間實(shí)踐,相信大家就能夠熟練的使用jQuery選擇器了。
- jQuery prev ~ siblings選擇器使用介紹
- jquery 層次選擇器siblings與nextAll的區(qū)別介紹
- 使用jquery選擇器如何獲取父級(jí)元素、同級(jí)元素、子元素
- jquery選擇器之屬性過(guò)濾選擇器詳解
- JQuery 選擇器、過(guò)濾器介紹
- jquery選擇器排除某個(gè)DOM元素的方法(實(shí)例演示)
- jQuery Selector選擇器小結(jié)
- JQuery中$之選擇器用法介紹
- jquery選擇器-根據(jù)多個(gè)屬性選擇示例代碼
- jQuery中的類名選擇器(.class)用法簡(jiǎn)單示例
- jQuery選擇器全集詳解
- jQuery 選擇器用法實(shí)例分析【prev + next】
相關(guān)文章
JQuery通過(guò)AJAX從后臺(tái)獲取信息顯示在表格上并支持行選中
這篇文章主要介紹了JQuery通過(guò)AJAX從后臺(tái)獲取信息顯示在表格上并支持行選中的相關(guān)資料,需要的朋友可以參考下2015-09-09jQuery操作Dom元素與遍歷以及JS遍歷詳細(xì)講解
這篇文章主要介紹了jQuery操作Dom元素、jQuery遍歷、JavaScript遍歷,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧2023-01-0125個(gè)優(yōu)雅的jQuery Tooltip插件推薦
jQuery 工具提示可以讓網(wǎng)站上一些小的幫助信息顯示更加直觀,提升用戶的體驗(yàn)。2011-05-05jQuery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)彈出提示信息的地圖熱點(diǎn)效果
這篇文章主要介紹了jQuery實(shí)現(xiàn)鼠標(biāo)經(jīng)過(guò)彈出提示信息的地圖熱點(diǎn)效果,涉及jquery鼠標(biāo)事件及頁(yè)面元素樣式的動(dòng)態(tài)操作技巧,非常具有實(shí)用價(jià)值,需要的朋友可以參考下2015-08-08jquery.combobox中文api和例子,修復(fù)了上面的小bug
關(guān)于jquery.combobox,這個(gè)jquery的插件從官網(wǎng)上直接下載下來(lái)使用還有bug,以下是我對(duì)其api做的簡(jiǎn)單翻譯,而且修復(fù)了上面的bug。2011-03-03Jquery Ajax的Get方式時(shí)需要注意URL地方
我們要時(shí)刻注意瀏覽器緩存, 當(dāng)使用GET方式時(shí)要添加時(shí)間戳參數(shù) (net Date()).getTime() 來(lái)保證每次發(fā)送的URL不同, 可以避免瀏覽器緩存.2011-04-04jQuery文字提示與圖片提示效果實(shí)現(xiàn)方法
這篇文章主要介紹了jQuery文字提示與圖片提示效果實(shí)現(xiàn)方法,涉及jQuery針對(duì)鼠標(biāo)事件的響應(yīng)與頁(yè)面元素動(dòng)態(tài)操作相關(guān)技巧,需要的朋友可以參考下2016-07-07淺談jQuery hover(over, out)事件函數(shù)
下面小編就為大家?guī)?lái)一篇淺談jQuery hover(over, out)事件函數(shù)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧,祝大家游戲愉快哦2016-12-12