Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/tensorflow/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将相同的函数应用于多个jQuery对象,而不重新设置它们_Javascript_Jquery_Performance - Fatal编程技术网

Javascript 将相同的函数应用于多个jQuery对象,而不重新设置它们

Javascript 将相同的函数应用于多个jQuery对象,而不重新设置它们,javascript,jquery,performance,Javascript,Jquery,Performance,我使用在函数顶部声明我需要的所有对象,我使用这些对象来缓存和保持应用程序的速度。例如,我有一些类似于: var $object1 = $('#my_element'), $object2 = $('.other_elements'), $object3 = $('.again_something_else'); 我在代码中单独使用这些变量,例如$object1.doSomething()或$object2.doElse(),但在某些情况下,我需要对两个或多个已选择的变量应用相同

我使用在函数顶部声明我需要的所有对象,我使用这些对象来缓存和保持应用程序的速度。例如,我有一些类似于:

var $object1 = $('#my_element'),
    $object2 = $('.other_elements'),
    $object3 = $('.again_something_else');
我在代码中单独使用这些变量,例如
$object1.doSomething()
$object2.doElse()
,但在某些情况下,我需要对两个或多个已选择的变量应用相同的函数。有没有一种方法可以将这些变量合并在一起,以避免重新选择所需的元素

我要避免这种情况:

 $('#my_element, .other_elements').myFunction()
并重复使用我已有的变量。

您可以使用:

描述:将元素添加到匹配的元素集中

因此,如果您想将
$object1
$object2
组合在一起,您可以:

var $one_and_two = $object1.add($object2);
演示:

add
不会修改任何内容,它只是将所选元素合并到一个新的jQuery对象中,并返回它,因此
$x.add(…)
不会对
$object1
做任何事情(感谢您在这一点上的提醒/更正)。

您可以使用它将元素缓存合并在一起,因为它们本质上是数组

jQuery.merge($object1, $object2).myFunction();
请注意,
$object1
将包含合并列表,因此您将无法重新使用缓存。您可以通过以下方式避免这种情况:

$.merge( $.merge([], $object1), $object2);

在国际海事组织,我认为这样做更简单:

function assignHandler () {
    $object1.myFunction();
    $object2.myFunction();
}

这不是
.each()
所做的吗?jQuery中的each是隐式的,我希望将对象合并在一起。$.each([$object1,$object2],function(index,val){val.myFunction();});我不理解这个方法的奇怪之处:如果我这样做会怎么样:
var$one_和_two=$($object1)
?@mimo:应该是一样的。“给定一个表示一组DOM元素的jQuery对象,.add()方法通过这些元素和传递给该方法的元素的并集来构造一个新的jQuery对象。”无需创建新的空jQuery对象。@JanDvorak:好的,谢谢提醒。出于某种原因,我修改了
$x.add(…)
修改了
$x
。说明:将两个数组的内容合并到第一个数组中。
$。合并
返回:array