使用jQuery管理选择结果(3)


<style>
            div {
                border: 1px solid #003a75;
                background-color: #FFFF00;
                margin: 5px;
                padding: 20px;
                text-align: center;
                height: 20px;
                width: 20px;
                float: left;
            }
            .altcss {
                border: 2px solid #000000;
            }
        }
        </style>
        <script type="text/javascript">
            $(function() {
                $("div").not(".green, #blueone").addClass("altcss");
            });
        </script>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>

以上的Jquery通过not()的方法去掉风格为"green"和"blueone"的<div>块,给剩下的div块加altcss样式。

not()方法所接收的参数都不能包含特定的元素,只能是通过通用的表达式例如下面的代码是错误的

$("li[title]").not("img[title*=isaac]")
正确的写法是:

$("li[tile]").not("[title*=isaac]")
除了add()和not()外,jQuery还提供了更强大的filter()方法来筛选元素。filter()可以接受两种类型的参数,一种与not()方法一样,接受通用的表达式。代码如下:

$("li").filter("[title*=isaac]")
以上的代码表示:筛选出title值包含isaac字符串的li元素组合。

$("li[title*=isaac]")
所筛选的组合相同。

复制代码 代码如下:


<script type="text/javascript">
            $(function() {
                $("div").addClass("css1").filter("[class*=middle]").addClass("css2");
            });
        </script>

<div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>
        <div></div>

以上代码中其中4个class属性为middle,Jq先给所有的div块都添加了css1样式,然后通过filter()方法,把class中包含middle的div添加css2样式。

在filter()的参数中,不能直接的等于匹配(=),只能使用前匹配(^=)、后匹配(&=),或者任意匹配(*=).

filter()另外一种类型的参数是函数,对于返回ture元素匹配保留,否则排除集合。函数参数功能十分强大,可以让用户自定义筛选函数。

例如:

复制代码 代码如下:

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wgxysf.html