4

可能重复:
合并 jQuery 对象

看演示

a = $('div:eq(0)');
b = $('div:eq(1)');
c = $('div:eq(2)');
d = $('div:eq(3)');
e = $('div:eq(4)');
f = $('div:eq(5)');

console.log($([a,b,c,d,e,f]).find('a'))

​</p>

我想要做的是将多个 jQuery 对象添加到一个集合中。

我知道我可以通过 using 一次添加一个,.add()但我正在寻找一种将 jQuery 对象数组转换为单个 jQuery 集的方法。

有没有办法做到这一点?

4

2 回答 2

3

在纯 jQuery 中是不可能的,因为语法已经用于 DOM 元素。

但是一个简单的插件就可以完成这项工作:

http://jsfiddle.net/gMDjZ/

a = $('div:eq(0)');
b = $('div:eq(1)');
c = $('div:eq(2)');
d = $('div:eq(3)');
e = $('div:eq(4)');
f = $('div:eq(5)');

jQuery.fromArray = function(a) {
    var c = jQuery();
    for(x in a) {
        c = c.add(a[x]);            
    }       
    return c;
}

console.log($.fromArray([a,b,c,d,e,f]).find('a'))

​</p>

于 2012-06-15T12:51:26.550 回答
1

您的代码中缺少:您的代码。写成——

a = $('div:eq(0)');

使用jQuery.merge() http://api.jquery.com/jQuery.merge/

jQuery.map() http://api.jquery.com/jQuery.map/

于 2012-06-15T12:27:25.697 回答