jQuery过滤性选择器

first过滤选择器

该类型的选择器是根据某过滤规则进行元素的匹配,书写时以":"号开头,通常用于查找集合元素中的某一位置的单个元素。

如果想得到一组相同标签元素中的第1个元素该怎样做呢?

$("元素:first")
<!DOCTYPE html>
<html>
<head>
    <title>:first过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <div>改变第一行"苹果"背景颜色:</div>
    <ol>
        <li>葡萄</li>
        <li>香蕉</li>
        <li>橘子</li>
        <li>西瓜</li>
        <li>苹果</li>
    </ol>
</body>
<script type="text/javascript">
    $("li:first").css("background-color", "red");
</script>
</html>

eq(index)过滤选择器

如果想从一组标签元素数组中,灵活选择任意的一个标签元素,我们可以使用

eq(index)

其中参数index表示索引号(即:一个整数),它从0开始。

<!DOCTYPE html>
<html>
<head>
    <title>:eq(index)过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <div>改变中间行"葡萄"背景颜色:</div>
    <ol>
        <li>橘子</li>
        <li>香蕉</li>
        <li>葡萄</li>
        <li>苹果</li>
        <li>西瓜</li>
    </ol>
</body>
<script type="text/javascript">
    $("li:eq(2)").css("background-color", "#60F");
</script>
</html>

注意:书写时以“:”号开头。

contains(text)过滤选择器

与上一介绍的:eq(index)选择器按索引查找元素相比,有时候我们可能希望按照文本内容来查找一个或多个元素,那么使用:contains(text)选择器会更加方便, 它的功能是选择包含指定字符串的全部元素,它通常与其他元素结合使用,获取包含“text”字符串内容的全部元素对象。其中参数text表示页面中的文字。

<!DOCTYPE html>
<html>
<head>
    <title>:contains(text)过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <div>改变包含"jQuery"字符内容的背景色:</div>
    <ol>
        <li>强大的"jQuery"</li>
        <li>"javascript"也很实用</li>
        <li>"jQuery"前端必学</li>
        <li>"java"是一种开发语言</li>
        <li>前端利器——"jQuery"</li>
    </ol>
</body>
<script type="text/javascript">
    $("li:contains('jQuery')").css("background", "green");
</script>
</html>

has(selector)过滤选择器

除了在上一介绍的使用包含的字符串内容过滤元素之外,还可以使用包含的元素名称来过滤,:has(selector)过滤选择器的功能是获取选择器中包含指定元素名称的全部元素,其中selector参数就是包含的元素名称,是被包含元素。

<!DOCTYPE html>
<html>
<head>
    <title>:has(selector)过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <div>改变包含"label"元素的背景色:</div>
    <ol>
        <li><p>我是P先生</p></li>
        <li><label>L妹纸就是我</label></li>
        <li><p>我也是P先生</p></li>
        <li><label>我也是L妹纸哦</label></li>
        <li><p>P先生就是我哦</p></li>
    </ol>
</body>
<script type="text/javascript">
    $("li:has('label')").css("background-color", "blue");
</script>
</html>

hidden过滤选择器

过滤选择器的功能是获取全部不可见的元素,这些不可见的元素中包括type属性值为hidden的元素。

例如,通过:hidden选择器获取隐藏元素,并将它的值显示在<div>元素中,如下所示:

<!DOCTYPE html>
<html>
<head>
    <title>:hidden过滤选择器</title>
        <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>显示隐藏元素的内容</h3>
    <input id="hidstr" type="hidden" value="我已隐藏起来"/>
    <div></div>
</body>
<script type="text/javascript">
    var $strHTML = $("input:hidden").val();
    $("div").html($strHTML);
</script>
</html>

visible过滤选择器

:hidden过滤选择器相反,:visible过滤选择器获取的是全部可见的元素,也就是说,只要不将元素的display属性值设置为“none”,那么,都可以通过该选择器获取。

例如,使用:visible选择器获取全部可见的<li>元素,并设置它们显示蓝色背景。

<!DOCTYPE html>
<html>
<head>
    <title>:visible过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>修改可见“水果”的背景色</h3>
    <ul>
        <li style="display:none">橘子</li>
        <li style="display:block">香蕉</li>
        <li style="display:">葡萄</li>
        <li>苹果</li>
        <li style="display:none">西瓜</li>
    </ul>
</body>
<script type="text/javascript">
    $("li:visible").css("background-color","blue");
</script>
</html>

[attribute=value]属性选择器

属性作为DOM元素的一个重要特征,也可以用于选择器中,从本节开始将介绍通过元素属性获取元素的选择器,[attribute=value]属性选择器的功能是获取与属性名和属性值完全相同的全部元素,其中[]是专用于属性选择器的括号符,参数attribute表示属性名称,value参数表示属性值

<!DOCTYPE html>
<html>
<head>
    <title>[attribute=value]属性选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>    
</head>
<body>
    <h3>改变"title"属性值为"蔬菜"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="水果">苹果</li>
        <li title="水果">西瓜</li>
    </ul>
</body>
<script type="text/javascript">
    $("li[title='蔬菜']").css("background-color", "green");
</script>
</html>

[attribute=value]属性选择器正好相反,[attribute!=value]属性选择器的功能是获取不包含属性名,或者与属性名和属性值不相同的全部元素,其中[]是专用于属性选择器的括号符,参数attribute表示属性名称,value参数表示属性值。

<!DOCTYPE html>
<html>
<head>
    <title>[attribute!=value]属性选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>改变"title"属性值不为"蔬菜"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="水果">苹果</li>
        <li title="水果">西瓜</li>
    </ul>
</body>
<script type="text/javascript">
    $("li[title!='蔬菜']").css("background-color", "green");
</script>
</html>

[attribute*=value]属性选择器

[attribute*=value],它可以获取属性值中包含指定内容的全部元素,其中[]是专用于属性选择器的括号符,参数attribute表示属性名称,value参数表示对应的属性值。

<!DOCTYPE html>
<html>
<head>
    <title>[attribute*=value]属性选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>改变"title"属性值包含"果"的背景色</h3>
    <ul>
        <li title="蔬菜">茄子</li>
        <li title="水果">香蕉</li>
        <li title="蔬菜">芹菜</li>
        <li title="人参果">小西红柿</li>
        <li title="水果">西瓜</li>
    </ul>
</body>
<script type="text/javascript">
    $("li[title*='果']").css("background-color", "green");
</script>
</html>

first-child子元素过滤选择器

使用:first-child子元素过滤选择器则可以获取每个父元素中返回的首个子元素,而它是一个集合,常用多个集合数据的选择处理。

<!DOCTYPE html>
<html>
<head>
    <title>:first-child子元素过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>改变每个"蔬菜水果"中第一行的背景色</h3>
    <ol>
        <li>芹菜</li>
        <li>茄子</li>
        <li>萝卜</li>
        <li>大白菜</li>
        <li>西红柿</li>
    </ol>
    <ol>
        <li>橘子</li>
        <li>香蕉</li>
        <li>葡萄</li>
        <li>苹果</li>
        <li>西瓜</li>
    </ol>
</body>
<script type="text/javascript">
    $("li:first-child").css("background-color", "green");
</script>
</html>

last-child子元素过滤选择器

:first-child子元素过滤选择器功能相反,:last-child子元素过滤选择器的功能是获取每个父元素中返回的最后一个子元素,它也是一个集合,常用多个集合数据的选择处理。

<!DOCTYPE html>
<html>
<head>
    <title>:last-child子元素过滤选择器</title>
    <script src="http://libs.baidu.com/jquery/1.9.0/jquery.js" type="text/javascript"></script>
</head>
<body>
    <h3>改变每个"蔬菜水果"中最后一行的背景色</h3>
    <ol>
        <li>芹菜</li>
        <li>茄子</li>
        <li>萝卜</li>
        <li>大白菜</li>
        <li>西红柿</li>
    </ol>
    <ol>
        <li>橘子</li>
        <li>香蕉</li>
        <li>葡萄</li>
        <li>苹果</li>
        <li>西瓜</li>
    </ol>
</body>
<script type="text/javascript">
   $("li:last-child").css("background-color", "blue");
</script>
</html>
原文地址:https://www.cnblogs.com/Blackcow/p/3956614.html