Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/447.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/73.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取具有超时的下一个数组元素_Javascript_Jquery_Css_Json_Wordpress - Fatal编程技术网

Javascript 获取具有超时的下一个数组元素

Javascript 获取具有超时的下一个数组元素,javascript,jquery,css,json,wordpress,Javascript,Jquery,Css,Json,Wordpress,我试图检查WordPress(自定义字段)数组。我想先打印数组[0],在6秒后打印数组,依此类推,直到它到达数组的末尾,然后它应该再次打印数组[0] 它曾经有效,但现在不再有效了。我找不到窃听器。似乎在6秒的间隔内,它会打印两个引号,但总是跳过一个引号。例如,在控制台中,它一次打印1和2和3和4,但在h2中,它只设置1和3 我也给你们一个引用的截图。这是一个活生生的例子: var quoteJson=; //footer.php中的Quotes.js var prevQuote=null;

我试图检查WordPress(自定义字段)数组。我想先打印
数组[0]
,在6秒后打印数组,依此类推,直到它到达数组的末尾,然后它应该再次打印
数组[0]

它曾经有效,但现在不再有效了。我找不到窃听器。似乎在6秒的间隔内,它会打印两个引号,但总是跳过一个引号。例如,在控制台中,它一次打印
1
2
3
4
,但在
h2
中,它只设置
1
3

我也给你们一个引用的截图。这是一个活生生的例子:


var quoteJson=;
//footer.php中的Quotes.js
var prevQuote=null;
var getNextQuote=函数(){
if(prevQuote==null){
prevQuote=0;
}
如果(prevQuote==0 | | prevQuote>0){
prevQuote+=1;
}
if(prevQuote==quoteJson.length+1){
prevQuote=0;
}
console.log(prevQuote);
返回quoteJson[prevQuote];
}
var setQuote=函数(){
var quote=getNextQuote();
$(“#报价”)。文本(报价);
setTimeout(setQuote,6000);
}
jQuery(文档).ready(函数($){
setQuote();
});

索引不能与数组长度相同

长度从1开始,但索引从零开始。所以,如果索引等于长度…您已经通过了数组的末尾

更改:

if (prevQuote == quoteJson.length + 1) {


我刚刚意识到,我需要找出其他的if而不是if。 但现在,当它打印eg数组[1]并进入下一个间隔时,0.5s内显示数组[1],然后进入getNextQuote函数。 我不知道怎么解决这个问题。 这是数组:(当我执行console.log(数组))时)


我发现您在处理
getNextQuote
函数中的所有
if…else
案例时遇到了一些问题。
完全删除该函数可以使代码更简单:

注意:这假设
quoteJson
不是空的

var quoteIndex = 0;

var setQuote = function() {
  var quote = quoteJson[quoteIndex];
  $("#quote").text(quote);
  quoteIndex = (quoteIndex + 1) % quoteJson.length; // calculate next index
  setTimeout(setQuote, 6000);
}

是的,好的,谢谢:)但这不是我的问题:)我想知道为什么控制台中同时打印两个数组索引,而输出中却遗漏了其中一个。通过将php切换为简单javascript数组并添加一些元素来创建可运行的版本。请参阅打开页面源代码并复制我刚刚遇到的一些相关输出。代码是否显示在php循环中,并且在页面中被重复多次?它不是在循环中。我这样得到数组:var quoteJson=;但它永远不会为null&将prevQuote设置为0。。。。总是需要1。。。我不明白…^^^^像这样使用模数(
%
)是处理大多数情况的一种很好的方法,在这种情况下,您希望迭代一个数组并在到达末尾时再次从0开始。哦,是的,不知道这种方法:),但它仍然会跳过下一个数组索引。它显示索引0、索引2和索引4。。。。为什么/
(10) ["Wie schee is des Gfüh, wann ma’s Fliagn probiert?", "Wie tiaf kånn ma foin, wann ma in Bodn verliert?", "Wie bleibt ma kloa und wie wird ma groß?", "Wann hoit ma fest? Wann låsst ma los?", "Kann I irgendwånn wieda so sei wie a Kind?", "Warum? Woher? Wohin? I fråg amoi in Wind", "Was bleibt nu offm, am Ende vom Kras?", "Was deaf ma hoffm, wenn ma goa nix mehr waß?", "Wie foit ma hin und måcht si nix draus?", "Wie fångt ma ån? Wie steht ma auf?"]
var quoteIndex = 0;

var setQuote = function() {
  var quote = quoteJson[quoteIndex];
  $("#quote").text(quote);
  quoteIndex = (quoteIndex + 1) % quoteJson.length; // calculate next index
  setTimeout(setQuote, 6000);
}