gpt4 book ai didi

javascript - 在 jQuery 集合上使用 `push`

转载 作者:行者123 更新时间:2023-12-03 09:27:34 27 4
gpt4 key购买 nike

jQuery 集合是 array-like Objects具有来自 Array.prototype 的 length 属性和方法,例如 splice, sort, and push 。我知道这些方法不像典型的 jQuery 方法那样可链接,但这些方法确实按预期工作。

是否有任何理由不使用这些 Array.prototype 方法来操作 jQuery 集合,例如浏览器兼容性或其他 jQuery 方法的问题?

示例

在循环中,将元素添加到 jQuery 集合中以供以后操作。

var $divs = $(); // Create empty jQuery collection.
for (i = 0; i < 8; i++) {
var div = document.createElement('div');
div.innerHTML = i+1;
$divs.push(div); // Add newly created div to collection
}
$divs.addClass('red').appendTo(document.body);

View on Codepen

这里使用 push 代替 $divs = $divs.add(div); 更简洁,看起来更高效。如果jsperf现在正在工作,我确信使用 push 会显示出更好的性能。

最佳答案

这是来自 jQuery 源代码的 .add:

add: function( selector, context ) {
return this.pushStack(
jQuery.uniqueSort(
jQuery.merge( this.get(), jQuery( selector, context ) )
)
);
},

在此函数中又调用了 3 个方法... .merge , .uniqueSort (实际上是 SizzleJS )和 .pushStack ...

除了 .push 之外,jQuery 还将:

  • 如果您的输入是选择器数组,则合并它。 (.merge)
  • 删除所有重复的条目。 (.uniqueSort)
  • 接受 DOM 元素的灵活输入 (.pushStack)

所以,总而言之,如果您担心输入,.add 很好用,因为 jQuery 使其变得灵活(常规 DOM 或 jQuery 对象可以工作),但它也删除了重复的内容条目,并且可以使用数组接收多个项目。

关于javascript - 在 jQuery 集合上使用 `push`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31617788/

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