DIV CSS 佈局教程網

3.5 內容偽類選擇器
編輯:jQuery基礎知識     

內容偽類選擇器,就是根據元素中的文字內容或所包含的子元素特征來選擇元素,其文字內容可以模糊或絕對匹配進行元素定位。

jQuery內容偽類選擇器 選擇器 說明 :contains(text) 選擇包含給定文本內容的元素 :has(selector) 選擇含有選擇器所匹配元素的元素 :empty 選擇所有不包含子元素或者不包含文本的元素 :parent 選擇含有子元素或者文本的元素(跟:empty相反)

一、:contains()

在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元素。

二、:has(selector)

在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是一個群組選擇器。

三、:empty

在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元素。

四、:parent

在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元素。

XML學習教程| jQuery入門知識| AJAX入門| Dreamweaver教程| Fireworks入門知識| SEO技巧| SEO優化集錦|
Copyright © DIV+CSS佈局教程網 All Rights Reserved