创建一组jquery对象的最简单方法

van*_*con 10 jquery object set

是的,我的方式是

   A.add(B).add(C).add(D).show()
Run Code Online (Sandbox Code Playgroud)

而A,B,C,D是jQuery对象.我想知道是否有这么简单的方法来做到这一点?我尝试了以下所有方法,但没有结果:

$(A,B,C,D).show()
A.add(B,C,D).show()
Run Code Online (Sandbox Code Playgroud)

欢迎所有建议!


除了澄清问题:

部分".show()"仅用于演示.我只是想知道如何创建一组JQuery对象,如$('p')创建一组p标签.

在我的实际案例中,我使用过

$([A,B,C,D]).each(fn)
Run Code Online (Sandbox Code Playgroud)

而不是.show()(我想知道为什么这有效?)很明显

$([A,B,C,D]).each(fn)
$('p').each(fn)
Run Code Online (Sandbox Code Playgroud)

都工作.但

$([A,B,C,D]).show()  //--doesn't work
$('p').show()        //--works
Run Code Online (Sandbox Code Playgroud)

只是第二行有效.有谁知道他们之间的差异?(我只是觉得它们是一样的,然后在我的问题中纠结了一点)

amo*_*era 10

$.each([A,B,C,D], function(){ 
    $(this).css('background','red'); 
})
Run Code Online (Sandbox Code Playgroud)

这个解决方案不使用选择器,而是使用名为$ .each的jQuery方法,该方法接受一个数组并对其进行迭代.传递的数组是一组jQuery对象.$(this)引用每次迭代的jQuery对象.

演示: http ://jsfiddle.net/SCjMc/1/


关于$()如何工作的其他事实:

$(element)是一个快捷方式jQuery(element).该jQuery()方法接受一组不同的参数:

在此输入图像描述

可以在此链接中找到每种参数的说明.

其中一种参数是"elementArray".对此的描述是:

elementArray包含要包装在jQuery对象中的一组DOM元素的数组.

问题是当你使用jQuery选择一个元素时,它会直接返回一个jQuery对象而不是一个DOM元素.因此,这不会返回任何元素:

var element1 = $("selector1");
var element2 = $("selector2");
$([element1,element2]) // will not return any elements
Run Code Online (Sandbox Code Playgroud)

要返回DOM元素而不是jQuery对象,您必须0在jQuery对象的位置访问该属性.如下:$("element")[0].这就是为什么这起作用的原因:

var element1 = $("selector1")[0]; //accessing dom element 
var element2 = $("selector2")[0]; //from jQuery object
$([element1,element2])
Run Code Online (Sandbox Code Playgroud)