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

jQuery concatenation of selectors without creating a new instance?

本文关键字:选择器 jQuery 连接 实例 创建 新实例      更新时间:2023-09-26

是否可以连接两个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"方法。

你可以在jQuery中使用多个选择器:

$('.a, .b')

上面的选择器将选择类别为.a和/或.b的所有元素

可以使用内部hack方法push:

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

但我不建议你使用它,因为它没有文档,只提供给内部使用。而是使用简单的:a = a.add(b) .

裁判: https://stackoverflow.com/a/14345461/1249581

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

$('.a, .b')