var first = $('#one, #two, #three');
var second = $('#six, #seven, #eight');
现在,我想使用$.merge()
合并选择并隐藏它们。
var merged = $.merge(first, second);
merged.hide(); // works, but alters "first"
由于我后来必须单独重用first
选项,我尝试了复制合并。
var merged = $.merge( $.merge([], first), second );
merged.hide(); // =
// = Uncaught TypeError: Object [object HTMLDivElement], [object HTMLDivElement], [,...] has no method 'hide'
错误很明显 - 元素丢失了jQuery关联。
$(merged).hide();
是唯一的解决方案吗?答案 0 :(得分:2)
您不需要.merge()
,而是使用.add():
var combined = first.add(second);
// ^----will not be affected
combined.hide();
答案 1 :(得分:1)
合并文档说它通过添加秒的值来改变第一个对象。
我相信您需要像这样复制它:$.merge($.merge($(), first), second)
或者您可以使用切片:
$.merge(first.slice(0), second)