Javascript 如何将多个jQuery对象收集到一个jQuery对象中?
假设我有这些变量:Javascript 如何将多个jQuery对象收集到一个jQuery对象中?,javascript,jquery,Javascript,Jquery,假设我有这些变量: var container = $("div#my-awesome-section"); var foo_input = $("input[name=foo]", container); var bar_input = $("input[name=bar]", container); 我想将事件处理程序绑定到两个输入。我希望这能奏效: $([foo_input, bar_input]).on("keypress", function() { /* ... */ }); 但
var container = $("div#my-awesome-section");
var foo_input = $("input[name=foo]", container);
var bar_input = $("input[name=bar]", container);
我想将事件处理程序绑定到两个输入。我希望这能奏效:
$([foo_input, bar_input]).on("keypress", function() { /* ... */ });
但是遗憾的是,没有。有没有一种方便的方法可以将多个jQuery对象聚集到一个jQuery对象中,以达到这样的目的?解决方案1: 要与对象一起使用,需要使用 创建一个新的jQuery对象,将元素添加到匹配的元素集中 解决方案2: 您也可以简单地使用逗号分隔的多选择器:
$("input[name=foo],input[name=bar]", container).on("keypress", function() { /* ... */ });
解决方案1: 要与对象一起使用,需要使用 创建一个新的jQuery对象,将元素添加到匹配的元素集中 解决方案2: 您也可以简单地使用逗号分隔的多选择器:
$("input[name=foo],input[name=bar]", container).on("keypress", function() { /* ... */ });
在jquery中的中用于添加jquery对象
foo_input.add(bar_input).on("keypress", function() { /* ... */ });
在jquery中的中用于添加jquery对象
foo_input.add(bar_input).on("keypress", function() { /* ... */ });
您也可以尝试以下方法:
$.each([foo_input, bar_input], function() {
/* ... */
});
看
在您的情况下,请使用:
$.each([foo_input, bar_input], function() {
$(this).on("keypress", function() {
/* ... */
});
});
您也可以尝试以下方法:
$.each([foo_input, bar_input], function() {
/* ... */
});
看
在您的情况下,请使用:
$.each([foo_input, bar_input], function() {
$(this).on("keypress", function() {
/* ... */
});
});
在阅读有关函数的文档时,我注意到我最初的尝试几乎是正确的。可以使用DOM元素数组初始化jQuery对象,因此我可以这样做:
$([foo_input[0], bar_input[0]]).on("keypress", ...
不过我非常喜欢add()
函数。阅读文档中的函数,我注意到我最初的尝试几乎是正确的。可以使用DOM元素数组初始化jQuery对象,因此我可以这样做:
$([foo_input[0], bar_input[0]]).on("keypress", ...
但是我非常喜欢add()
函数。我已经将jQuery对象绑定到变量,因此不必在其他地方重复选择器。每次绑定事件处理程序时都必须重复选择器,这将无法达到此目的。您正在查找.add()
。请参阅第一部分。我已将jQuery对象绑定到变量,因此不必在其他地方重复选择器。每次绑定事件处理程序时都必须重复选择器,这将无法达到此目的。您正在查找.add()
。见第一部分。