javascript数组只循环第一个var

Posted

技术标签:

【中文标题】javascript数组只循环第一个var【英文标题】:javascript array cycling only first var 【发布时间】:2011-12-14 14:53:50 【问题描述】:

我正在使用 javascript 在 iframe 中循环遍历一组 url,到目前为止,当按下 prev 或 next 按钮时,它会跳转到数组中的第一个 var,并且 prev 和 next 函数都结束。有什么想法吗?

<iframe id="myFrame" src="http://startpage.com"  height = "424px"></iframe>
<button onclick = "prevPage(); ">Prev</button>
<button onclick = "nextPage(); ">Next</button>

<script>

var sites=new Array(); 
sites[0]="http://site1.html";       
sites[1]="http://site2.html";
sites[2]="http://site3.html";
sites[3]="http://site4.html";

function nextPage() 
var number = document.getElementById("myFrame").src;
number = number.substring(number.length - 4 ,number.length-3);
number = parseInt(number) + 1; 
document.getElementById("myFrame").src=sites[0];
 

function prevPage() 
var number = document.getElementById("myFrame").src;
number = number.substring(number.length - 3 ,number.length-4);
number = parseInt(number) - 1; 
document.getElementById("myFrame").src=sites[0];
 

</script>

【问题讨论】:

【参考方案1】:

您为什么使用 URL 作为您的“位置”存储?只使用变量会容易得多:

var curPos = 0;

function nextPage() 
   curPos++;
   if (curPos >= sites.length) 
      curPos = 0;
   
   document.getElementById('myframe').src = sites[curPos];


function prevPage() 
    curPos--;
    if (curPos < 0) 
       curPos = sites.length - 1;
    
    document.getElementById('myframe'.).src = sites[curPos];

【讨论】:

【参考方案2】:

如果我正确理解了您的问题,我认为您需要做的就是使用 document.getElementById("myFrame").src=sites[number]; 而不是 document.getElementById("myFrame").src=sites[0];

【讨论】:

谢谢,我试了一下,但按钮停止工作,firebug 没有吐出任何控制台错误……嗯……我会继续努力的,再次感谢!跨度> 【参考方案3】:

可能

document.getElementById("myFrame").src=sites[number-1];

是您在这两个函数中尝试执行的操作。

【讨论】:

这返回了本地文件搜索而不是数组 urls

以上是关于javascript数组只循环第一个var的主要内容,如果未能解决你的问题,请参考以下文章

Javascript For循环附加子元素只附加第一个元素,然后抛出错误

在 for 循环中递增 JavaScript 对象中的值

Javascript设计模式第三课 工厂方法模式

php foreach输出数组只输出元素的第一个字符

关于javascript数组与循环的一个小问题。

JavaScript 第3天学习规划丨循环-for数组