我对jQuery.show
. 这个问题出现在 IE8 中(可能还有以下版本,但 IE8 是我感兴趣的)。
我有一个 jQuery 对象数组,让我们调用它elements
。我想给他们看,所以我做了:
for (var i = elements.length - 1; i >= 0; i--) {
elements[i].show();
}
瓶颈似乎是对show
. 数组已经生成,所以不需要时间。遍历数组也不应该是一个问题。
我想show
通过创建一个包含我所有元素的新 jQuery 元素来减少一次调用。但我不知道该怎么做。我试过了jQuery.add
。
var $elements = elements[0];
for (var i = elements.length - 1; i >= 1; i--) {
$elements = $elements.add(elements[i]);
}
$elements.show();
现在,这一次似乎是一个问题jQuery.add
。可能是因为它总是创建一个新对象。
所以,我想到了三种不同的方法来解决我的问题。也许你可以帮助我其中之一:
- 是否有这样的 jQuery 方法
add
不返回新对象,而是将其添加到当前的 jQuery 元素中? - 有没有一种简单快捷的方法来通过一组 jQuery 元素创建一个 jQuery 元素?
- 有没有办法以
show
更快的方式处理数组中的所有 jQuery 对象?
只回答一个问题可能会对我有所帮助。我的问题是,jquery在其方法中总是需要一个数组DOM elements
而不是数组。jQuery elements
提前非常感谢!
-- 编辑内容elements
我有一个动态创建节点(即li
元素)的jstree。这些元素具有data-id
标识它们的属性。现在,我总是可以查询 $('li[data-id=xxx]') 之类的东西,但这会很慢。因此,相反,当li
创建元素时,我将它们缓存到类似对象的字典中(键是数据 ID,值是节点)。在这个对象之外,我生成了我的数组elements
。这发生得非常快。阵列的大小最多可达 4000 个节点。数组中的每个 jQuery 元素只包含一个 DOM-Element ( li
)。