假设我有一个jQuery对象数组,并希望有一个复合jQuery对象.
除了手动遍历数组并将元素附加到刚刚创建的jquery对象之外,还有什么解决方案.add()?
这不符合我的要求:
var a = $('#a'),
b = $('#b'),
c = [a, b];
// the lines above is the set up, they cannot be changed
var d = $(c);
d.hide();?
Run Code Online (Sandbox Code Playgroud)
http://jsfiddle.net/zerkms/896eN/1/
预期的结果是两个div都被隐藏了.
有任何想法吗?
xda*_*azz 27
尝试
var d = $($.map(c, function(el){return $.makeArray(el)}));
Run Code Online (Sandbox Code Playgroud)
要么
var d = $($.map(c, function(el){return el.get();}));
Run Code Online (Sandbox Code Playgroud)
Jul*_*ian 12
我来这里寻找比我已经拥有的更干净的答案,但没找到一个.为了下一个人的缘故,我想我会发布我的解决方案:
var a = $('#a'),
b = $('#b'),
c = [a, b];
var d = c.reduce($.merge);
d.hide();?
Run Code Online (Sandbox Code Playgroud)
我有点惊讶的是,没有一些jQuery特定的方法可以使这个更清洁,但Array.reduce如果没有更具体的内容,这绝对是这项工作的正确工具jQuery.