內容偽類選擇器,就是根據元素中的文字內容或所包含的子元素特征來選擇元素,其文字內容可以模糊或絕對匹配進行元素定位。
在jQuery中,我們可以使用:contains()選擇器來選擇包含指定文本內容的元素。
語法:
$("E:contains(text)")
說明:
E表示元素名,text表示所包含的文本內容。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
/*去除所有元素默認外邊距以及內邊距*/
*{padding:0;margin:0;}
</style>
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("p:contains(jQuery)").css("background-color", "red");
})
</script>
</head>
<body>
<div>jQuery入門教程</div>
<p>write less do more</p>
<p>從JavaScript到jQuery</p>
<div>歡迎來到 學習網</div>
</body>
</html>
在浏覽器預覽效果如下:
分析:
$("p:contains(jQuery)")表示選擇包含“jQuery”這一個文本內容的p元素。
在jQuery中,我們可以使用:has(selector)選擇器來選擇“符合條件(selector)”的元素。
語法:
$(":has(selector)")
說明:
selector表示一個 jQuery選擇器表達式。所謂的jQuery選擇器表達式,說白了就是我們在前幾章所學到的選擇器。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
/*去除所有元素默認外邊距以及內邊距*/
*{padding:0;margin:0;}
</style>
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("div:has(span)").css("background-color", "red");
})
</script>
</head>
<body>
<div>
<p>這是一個段落</p>
</div>
<div>
<p>這是一個段落</p>
<span>這是一個span</span>
</div>
</body>
</html>
在浏覽器預覽效果如下:
分析:
$("div:has(span)")表示選擇內部含有span元素的div元素。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
/*去除所有元素默認padding以及margin*/
*{padding:0;margin:0;}
/*去除列表項符號*/
ul{list-style-type:none;}
</style>
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("div:has(#red,#yellow)").css("background-color", "red");
})
</script>
</head>
<body>
<div><span id="red">紅色red</span></div>
<div><span>橙色orange</span></div>
<div><span id="yellow">黃色yellow</span></div>
<div><span>綠色green</span></div>
<div><span>藍色blue</span></div>
<div><span>紫色purple</span></div>
</body>
</html>
在浏覽器預覽效果如下:
分析:
$("div:has(#red,#yellow)")表示選擇內部含有id為red和id為yellow子元素的div元素。:has(selector)中的selector是一個群組選擇器。
在jQuery中,我們可以使用:empty選擇器選擇所有“沒有子元素”或者“沒有文本”的空元素。
注意,只要內部有子元素或者文本內容,使用:empty都不會被選中。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
table,tr,td
{
border:1px solid silver;
}
td
{
width:60px;
height:60px;
line-height:60px;
text-align:center;
}
</style>
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("td:empty").css("background-color", "red");
})
</script>
</head>
<body>
<table>
<tr>
<td>2</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td>16</td>
<td>32</td>
<td>64</td>
</tr>
<tr>
<td>128</td>
<td>256</td>
<td></td>
</tr>
</table>
</body>
</html>
在浏覽器預覽效果如下:
分析:
$("td:empty")表示選擇內部沒有文本內容頁沒有子元素的td元素。
在jQuery中,我們可以使用:parent選擇器選擇“含有子元素”或者“含有文本”的元素。:parent選擇器跟:empty選擇器是相反的。
注意,只要元素中有子元素或者文本內容,使用:parent都會被選中。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
table,tr,td
{
border:1px solid silver;
}
td
{
width:60px;
height:60px;
line-height:60px;
text-align:center;
}
</style>
<script type="text/javascript" src="jquery-1.12.0.min.js"></script>
<script type="text/javascript">
$(function () {
$("td:parent").css("background-color", "red");
})
</script>
</head>
<body>
<table>
<tr>
<td>2</td>
<td>4</td>
<td>8</td>
</tr>
<tr>
<td>16</td>
<td>32</td>
<td>64</td>
</tr>
<tr>
<td>128</td>
<td>256</td>
<td></td>
</tr>
</table>
</body>
</html>
在浏覽器預覽效果如下:
分析:
$("td:parent")表示選擇內部有文本內容頁沒有子元素的td元素。