结合jQuery对象

时间:2012-06-15 12:21:15

标签: javascript jquery

  

可能重复:
  Merging jQuery objects

See Demo

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'))

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

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

有没有办法做到这一点?

2 个答案:

答案 0 :(得分: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'))

答案 1 :(得分:1)

您的代码中缺少:。把它写成 -

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

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

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