gpt4 book ai didi

javascript - 随机播放 jQuery 对象的一部分但返回整个对象

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

在 jQuery 对象中,我想打乱除第一个元素之外的所有元素。经过不同的尝试,我想出了这个:

var $shuffled = $('.slide').slice(1).shuffle().end();

但是这会返回一个空对象。如何首先选择对象的一部分(切片),然后对其进行洗牌(自定义函数),然后设置过滤器(结束),以便 $shuffled 返回整个对象而不仅仅是它的子集?

这是我使用的随机播放代码:

(function($){
$.fn.shuffle = function() {

var allElems = this.get(),
getRandom = function(max) {
return Math.floor(Math.random() * max);
},
shuffled = $.map(allElems, function(){
var random = getRandom(allElems.length),
randEl = $(allElems[random]).clone(true)[0];
allElems.splice(random, 1);
return randEl;
});

this.each(function(i){
$(this).replaceWith($(shuffled[i]));
});

return $(shuffled);
};
})(jQuery);

最佳答案

好吧,我自己找到了一个简单的解决方案。我没有意识到.add()这就是我正在寻找的。这是现在的样子:

var $slides = $('.slide');
var $firstSlide = $slides.slice(0,1);
var $remainingSlides = $slides.slice(1).shuffle();

$slides = $firstSlide.add($remainingSlides);

不如一行行那么好,但至少相当可读。

关于javascript - 随机播放 jQuery 对象的一部分但返回整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25248402/

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