首页 > 编程笔记 > Web笔记 > jQuery过滤和查找

jQuery not()方法的用法

从之前的学习中我们可以知道,hasClass()is() 等方法都是过滤“符合条件”的元素。在 jQuery 中,我们还可以使用 not() 方法来过滤“不符合条件”的元素,并且返回余下符合条件的元素。其中,not() 方法可以使用选择器来过滤,也可以使用函数来过滤。

语法:

$().not(selector或fn)

当 not() 方法参的数是一个选择器时,表示使用选择器来过滤不符合条件的元素,然后选取其余元素。当 not() 方法的参数是一个函数时,表示使用函数来过滤不符合条件的元素,然后选取其余元素。

举例:选择器过滤
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            $("li").not(".select").css("color", "red");
        })
    </script>
</head>
<body>
    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li class="select">jQuery</li>
        <li>Vue.js</li>
    </ul>
</body>
</html>
预览效果如图 1 所示。
选择器过滤的效果
图 1:选择器过滤的效果

$("li").not(".select") 表示选取除了 class 为 select 以外的所有 li 元素。实际上,下面两行代码是等价的。
$("li").not(".select").css("color", "red");
$("li:not(.select)"). css("color", "red");
not() 方法与 :not 选择器相似,这个与 eq() 方法和 :eq() 选择器相似是一样的道理。

举例:函数过滤
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8" />
    <title></title>
    <script src="js/jquery-1.12.4.min.js"></script>
    <script>
        $(function () {
            $("li").not(function(){
                return $(this).text() == "jQuery";
            }).css("color", "red");
        })
    </script>
</head>
<body>
    <ul>
        <li>HTML</li>
        <li>CSS</li>
        <li>JavaScript</li>
        <li>jQuery</li>
        <li>Vue.js</li>
    </ul>
</body>
</html>
预览效果如图 2 所示。
函数过滤的效果
图 2:函数过滤的效果

$("li").not(function(){return$(this).text()=="jQuery";})表示选取内部文本不是为“jQuery”的 li 元素。

所有教程

优秀文章