Javascript 如何在jquery上循环数组
我一直在尝试制作一个脚本来更改span的文本 不可否认,我对jQuery并不擅长,并且已经找到了一个脚本。我已经编辑了我,但我无法让脚本循环,我甚至不知道从哪里开始。任何代码提示或相关文档的链接都将不胜感激 以下是迄今为止的jQuery:Javascript 如何在jquery上循环数组,javascript,jquery,infinite-loop,Javascript,Jquery,Infinite Loop,我一直在尝试制作一个脚本来更改span的文本 不可否认,我对jQuery并不擅长,并且已经找到了一个脚本。我已经编辑了我,但我无法让脚本循环,我甚至不知道从哪里开始。任何代码提示或相关文档的链接都将不胜感激 以下是迄今为止的jQuery: function change() { $('#msg').html(options.pop()).fadeIn(750).delay(2000).fadeOut(750, change); }; var options = [ "R
function change() {
$('#msg').html(options.pop()).fadeIn(750).delay(2000).fadeOut(750, change);
};
var options = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
].reverse();
change();
在jsfiddle上:编辑:我只是想知道你真正想要什么 只需放置一个全局变量:
var i = 0;
现在,将其添加到change()
函数中:
if(i < messages.length){
i++;
}
else{
i = 0;
}
if(i
这部分代码将在yout数组上循环,并在到达末尾时返回到开头
然后,将messages.pop()
更改为messages[i]
下面是JSFIDLE:。停止弹出数组,改用迭代器
var messages = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
],
i = 0;
(function change() {
var msg = messages[i>messages.length-1 ? i=0 : i++];
$('#msg').html(msg).fadeIn(750).delay(2000).fadeOut(750, change);
})();
pop()将从数组中删除该值。因此,它可以工作一个完整的周期。之后,数组为空。因此,它显示空白值。实际上它是循环工作的
var messages = [
"Red Bull",
"Smoke",
"Babes",
"css",
"batman"
].reverse();
var i = messages.length;
function change() {
i=(i%messages.length);
$('#msg').html(messages[i++]).fadeIn(750).delay(2000).fadeOut(750, change);
};
问题是
Array.pop
会从数组中删除元素,因此一旦元素浏览完您的消息列表,一旦没有更多条目,它就会开始抛出错误。要使其连续循环,请将新删除的消息添加到阵列的前端:
function change() {
var message = messages.pop();
messages.unshift(messages);
$('#msg').html(message).fadeIn(750).delay(2000).fadeOut(750, change);
};
你的小提琴好像在用。你到底需要什么?@basitseed,它没有循环。它只循环一次。@basitseed它在数组的最后一个变量上停止:我想我从未见过这种语法。很好(我认为)。它只是一个命名的生命和一个三元,没有魔力,但一开始可能看起来有点“奇怪”?是的。如果你想随机化,这里有一个选项,我想这看起来很奇怪,因为
I=0:I++
正在返回I
,而不仅仅是设置它。非常感谢你的答案和解释谢谢你的帮助@sebj:)非常感谢你的详细解释!对像我这样的学习者很有帮助!非常感谢!