首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何从jQuery对象数组创建jQuery对象?

如何从jQuery对象数组创建jQuery对象?
EN

Stack Overflow用户
提问于 2012-07-03 11:44:46
回答 6查看 15K关注 0票数 32

假设我有一个jQuery对象数组,并且希望有一个复合jQuery对象。

除了手动遍历数组并使用.add()将元素附加到刚刚创建的jquery对象之外,还有什么解决方案

这不是我想要的:

代码语言:javascript
运行
复制
var a = $('#a'),
    b = $('#b'),
    c = [a, b];

// the lines above is the set up, they cannot be changed
var d = $(c);
d.hide();​

http://jsfiddle.net/zerkms/896eN/1/

预期的结果是两个div都是隐藏的。

有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2012-07-03 12:01:53

试一试

代码语言:javascript
运行
复制
var d = $($.map(c, function(el){return $.makeArray(el)}));

代码语言:javascript
运行
复制
var d = $($.map(c, function(el){return el.get();}));
票数 27
EN

Stack Overflow用户

发布于 2016-12-04 08:48:07

我来到这里寻找一个比我已经有的更清晰的答案,但没有找到。为了给下一个人着想,我想我还是把我的解决方案贴出来吧:

代码语言:javascript
运行
复制
var a = $('#a'),
    b = $('#b'),
    c = [a, b];

var d = c.reduce($.merge);
d.hide();​

我有点惊讶的是,没有一些特定于jQuery的方法可以使这项工作变得更简洁,但是如果jQuery中没有更具体的方法,那么Array.reduce绝对是适合这项工作的正确工具。

票数 18
EN

Stack Overflow用户

发布于 2012-07-03 11:54:40

你能try吗?

代码语言:javascript
运行
复制
var a = $('#a'),
b = $('#b'),
c = [a, b];
d = [];
$.each(c, function(i, v){
    if(v.length>0){
        d.push(v[0]);
    }
});

e = $(d);
e.hide();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11304173

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档