jQuery的內(nèi)容過濾選擇器學(xué)習(xí)教程
內(nèi)容過濾器的過濾規(guī)則主要是包含的子元素或文本內(nèi)容上。

$('div:contains("xxx")').css('background', '#ccc'); //選擇元素文本節(jié)點(diǎn)含有xxx 文本的元素
$('div:empty').css('background', '#ccc'); //選擇空元素
$('ul:has(.red)').css('background', '#ccc'); //選擇子元素含有class 是red 的元素
$(':parent').css('background', '#ccc'); //選擇非空元素
jQuery 提供了一個(gè)has()方法來提高:has 過濾器的性能:
$('ul').has('.red').css('background', '#ccc'); //選擇子元素含有class 是red 的元素
jQuery 提供了一個(gè)名稱和:parent 相似的方法,但這個(gè)方法并不是選取含有子元素或文本的元素,而是獲取當(dāng)前元素的父元素,返回的是元素集合。
$('li').parent().css('background', '#ccc'); //選擇當(dāng)前元素的父元素
$('li').parents().css('background', '#ccc'); //選擇當(dāng)前元素的父元素及祖先元素
$('li').parentsUntil('div').css('background', '#ccc'); //選擇當(dāng)前元素遇到div 父元素停止
jQuery內(nèi)容過濾選擇器的過濾規(guī)則主要運(yùn)用在DOM元素所包含的子元素或其文本內(nèi)容上,主要包括以下四種過濾方法:
為了更好的學(xué)習(xí),先寫幾個(gè)DOM元素的HTML結(jié)構(gòu):
<div>John Resign</div> <div>George Martin</div> <div>Malcom John Sinclair</div> <div>J.Ohn</div> <div></div> <p></p> <div><p>Has p</p></div>
一、內(nèi)容過濾選擇器——:contains(text)
選擇器:
E:contains(text) //E是指DOM元素,:contains(text)包含的文本,text是指定查找的字符串
描述:
選取含有文本內(nèi)容為“text”的元素
返回值:
集合元素
實(shí)例:
<script type="text/javascript">
$(document).ready(function(){
$('div:contains(John)').css('background','#f36');
});
</script>
功能:
改變含有文本為“John”的div元素的背景色
效果:

回到前面的HTML結(jié)構(gòu)中我們可以看出其中有兩個(gè)div元素中包含了"John"文本,因?yàn)槲覀冞@里主要是改變了包含文本“John”的div的背景色,因此大家在效果中可以看出我們其中第一個(gè)和第三個(gè)div的背景色變成了"#f36",為了更能體會(huì)從中的變化,大家可以通過Firefox中的Firebug工具看出HTML的變化:

二、內(nèi)容過濾選擇器——:empty
選擇器:
E:empty //其中E為DOM元素,:empty是指DOM元素中不包含任何子元素或文本
描述:
選取不含任何子元素或文本的空元素
返回值:
集合元素
實(shí)例:
<script type="text/javascript">
$(document).ready(function(){
$('div:empty').css('background','#f36');
});
</script>
功能:
改變不含子元素(包括不含文本元素)的div的背景色,換句話說,就是改變不包含任何東西的div的背景色
效果:

雖然我們前面的html中所有元素中不包含子元素,但有一些包含了文本元素,只有一個(gè)div和一個(gè)p元素具沒有子元素也沒有文本內(nèi)容。加上我們這個(gè)例子中,我們只對不包含子元素和文本內(nèi)容的div進(jìn)行了改變背景色的設(shè)置,所以我們的效果中只有div加上了“#f36”的背景色,同樣我們來看看HTML的變化吧:

三、內(nèi)容過濾選擇器——:has(selector)
選擇器:
E:has(selector) //其中E為有效果DOM元素標(biāo)簽,:has(selector)含有一個(gè)選擇器,selector用于篩選的選擇器
描述:
選取含有選擇器所匹配的元素的元素
返回值:
集合元素
實(shí)例:
<script type="text/javascript">
$(document).ready(function(){
$('div:has(p)').css('background','#f36');
});
</script>
功能:
改變含有子元素P的div元素的背景色
效果:

在我們這個(gè)實(shí)例中,只有一個(gè)div中包含了子元素P,所以包含了符合這個(gè)要求的div元素其背景色被設(shè)置為“#f36”,改變后的HTML:

四、內(nèi)容過濾選擇器——:parent
選擇器:
E:parent //E為有效的DOM元素標(biāo)簽,:parent含有子元素或文本內(nèi)容。
描述:
選取含有子元素或者文本的元素標(biāo)簽
返回值:
集合元素
實(shí)例:
<script type="text/javascript">
$(document).ready(function(){
$('div:parent').css('background','#f36');
});
</script>
功能:
改變含有子元素或文本內(nèi)容的div的背景色。換句話說只在div包含了任何一個(gè)子元素或者任何內(nèi)容,其背景色都將會(huì)改變。
效果:

本例子,只有一個(gè)div和一個(gè)p元素中不包含任何子元素和文本內(nèi)容,因?yàn)槲覀冞@里是對div進(jìn)行設(shè)置,所以效果中顯示,除了這兩個(gè)不含有子元素和任何內(nèi)容的div的背景色都變成了“#f36”,變化后的HTML:

有關(guān)于jQuery選擇器中的內(nèi)容過濾選擇器,就簡單的說到這里,大家如果想更深的體會(huì)其具體的用法,可以在本地多做幾個(gè)實(shí)例練習(xí)。如果大家對jQuery選擇器的其他選擇器用法感興趣的話,可以在本站中了解其他的選擇器的具體功能和用法,同時(shí)也可以隨時(shí)觀注本站的內(nèi)容更新。
相關(guān)文章
DropDownList實(shí)現(xiàn)可輸入可選擇(兩種版本可選)
本篇文章主要介紹了DropDownList實(shí)現(xiàn)可輸入可選擇的具體實(shí)現(xiàn)代碼,并附上兩種版本(js版本和jquery版本),可供大家選擇。有需要的朋友可以參考下2016-12-12
jQuery實(shí)現(xiàn)的移動(dòng)端圖片縮放功能組件示例
這篇文章主要介紹了jQuery實(shí)現(xiàn)的移動(dòng)端圖片縮放功能組件,結(jié)合實(shí)例形式詳細(xì)分析了jQuery基于移動(dòng)端的圖片縮放功能組件實(shí)現(xiàn)原理、步驟、核心代碼及使用技巧,需要的朋友可以參考下2020-05-05
jquery操作select取值賦值與設(shè)置選中實(shí)例
下面小編就為大家?guī)硪黄猨query操作select取值賦值與設(shè)置選中實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-02-02
jquery1.5.1中根據(jù)元素ID獲取元素對象的代碼
盡管聽說jquery的大名幾年了,但是一直沒有使用過。這兩天想在項(xiàng)目中使用被一些小細(xì)節(jié)折騰的夠嗆,看來jquery沒有傳說中的那么好學(xué)。2011-04-04
jQuery實(shí)現(xiàn)發(fā)送驗(yàn)證碼控制按鈕禁用功能
最近接到新需求,需要實(shí)現(xiàn)一個(gè)點(diǎn)擊發(fā)送驗(yàn)證碼之后,按鈕禁用,在5秒之后取消禁用,看似需求很簡單,實(shí)現(xiàn)起來還真的好好動(dòng)動(dòng)腦筋,下面小編把jquery控制按鈕禁用核心代碼分享給大家,需要的朋友參考下吧2021-07-07

