【发布时间】:2020-02-27 05:54:43
【问题描述】:
是否可以将多个 jQuery DOM 对象合并到一个数组中并在所有对象上调用 jQuery 方法?
F.ex:
<button>one</button>
<h3>two</h3>
<script>
var btn = $('button');
var h3 = $('h3');
$([btn,h3]).hide();
</script>
这不起作用。我知道我可以在这里使用 'button,h3' 选择器,但在某些情况下,我已经有几个 jQuery DOM 元素,我需要合并它们,以便我可以在所有这些元素上调用 jQuery 原型。
类似:
$.merge([btn,h3]).hide();
会起作用的。有什么想法吗?
更新:
解决了。你可以这样做:
$.fn.add.call(btn,h3);
我将接受add() 的建议,为我指明正确的方向。
【问题讨论】:
-
@David,为什么会奇怪地使用
call?btn.add(h3)工作... -
因为不知道第一个对象,所以不能链。 Apply() 会更好,所以我可以使用 $.fn.add.apply(arr.shift(),arr); 发送一个数组;
-
有没有办法添加两个以上的对象?
-
如果你不知道第一个对象,你可以通过链接一个空的jQuery对象来避免使用
call:$().add(btn).add(h3)。 IMO,这是使用$.add的更好方法。
标签: jquery