gpt4 book ai didi

jquery - 有没有一种快速的方法来将 jQuery 包装在数组中的每个元素上?

转载 作者:行者123 更新时间:2023-12-03 22:32:10 26 4
gpt4 key购买 nike

能否以更简洁的方式完成此操作?

var src = $('div');
var dest = [];

for ( var i = 0; i < src.length; i++)
dest[i] = $(src[i]);

我只能想到这个,还是很冗长:

var dest = [];
$('div').each(function() { dest.push($(this)); });

jQuery 是否为这种情况提供了更好的东西?我找不到它。

<小时/>

解决评论中反复出现的一些问题:

src[i] is already a jQuery object, calling jQuery(src[i]) doesn't do anything.

不,它是一个普通的 DOM 节点,根本没有任何 jQuery 包装。

Just out of curiosity, why do it at all?

因为之后我需要对每个元素分别进行大量的处理。例如,我需要遍历所有这些以找到最高的一个,然后将其余的设置为相同的高度。之后,我需要获取它们的所有宽度并基于此执行一些布局(因此每个元素根据其他元素的宽度获取其 x 和 y 坐标)。等等

如果我可以使用 jQuery 提供的简写函数,所有这些操作都会更容易完成,但这意味着我需要单独包装每个元素($('div') 仅返回一个包装器围绕所有)。由于我需要多次访问每个元素,因此我希望通过仅将每个元素包装一次而不是每次访问都包装它们来提高性能。

最佳答案

这正是 map() 的用途。您循环遍历每个元素并向该元素应用一个函数并将其推送到一个新数组中。

var wrapped  = $.map($('div'), function(){ return $(this); });

或者为了可读性

var wrapped  = $.map($('div'), function(val, i) {
return $(val);
});

关于jquery - 有没有一种快速的方法来将 jQuery 包装在数组中的每个元素上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16583323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com