选择器的jQuery连接而不创建新实例?

时间:2013-03-27 15:10:01

标签: javascript jquery jquery-selectors

是否可以连接两个jQuery选择器而不用在进程中创建一个新的选择器?一个例子如下:

<html>
    <head>
        <script src="http://code.jquery.com/jquery-1.9.1.js"></script>
    </head>
    <body>
        <span class="a">A</span>
        <span class="a">B</span>
        <span class="b">C</span>
        <script language="JavaScript" type="text/javascript">
            <!--
                var a = $('.a');
                var b = $('.b');
                var c = a.add(b);

                console.log(a);
                console.log(b);
                console.log(c);
            //-->
        </script>
    </body>
</html>

如上所述,产生以下选择器:

a = [ A, B ]
b = [ C ]
c = [ A, B, C ]

我想修改它以产生:

a = [ A, B, C ]
b = [ C ]
c = whatever

没有在过程中创建一个新的选择器,相当于在选择器中的每个元素上使用Array的“push”方法。

3 个答案:

答案 0 :(得分:2)

您可以在jQuery中使用multiple selectors

$('.a, .b')

上面的选择器会选择所有包含.a类和/或.b

的元素

答案 1 :(得分:1)

您可以在jQuery字符串中使用多个选择器,只需用逗号分隔它们,如下所示:

$('.a, .b')

答案 2 :(得分:1)

您可以使用 内部黑客 方法push

a.push.apply(a, b.get());  // it accepts only native DOM elements

但我不建议您使用它,因为它没有记录并仅供内部使用。而是使用简单的:a = a.add(b)

参考: https://stackoverflow.com/a/14345461/1249581