Javascript ';对于';用于此简单脚本中不工作的数组的循环
请参阅以下代码:Javascript ';对于';用于此简单脚本中不工作的数组的循环,javascript,arrays,Javascript,Arrays,请参阅以下代码: function overall() { var message = ["dog", "cat", "bear", "penguin", "tiger", "eagle", "John Doe"]; function forward() { var A = document.getElementById('text'); for (var i = 0; i < message.length+1; i++) { if (A.innerHTML
function overall() {
var message = ["dog", "cat", "bear", "penguin", "tiger", "eagle", "John Doe"];
function forward() {
var A = document.getElementById('text');
for (var i = 0; i < message.length+1; i++) {
if (A.innerHTML===message[i]) {
A.innerHTML = message[i+1];
};
};
};
function backward() {
var A = document.getElementById('text');
for (var i = 0; i < message.length+1; i++) {
if (A.innerHTML===message[i]) {
A.innerHTML = message[i-1];
};
};
};
};
函数整体(){
var消息=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”];
函数forward(){
var A=document.getElementById('text');
对于(变量i=0;i
在上面的JS脚本中,我的意图是当调用forward()函数时,.innerHTML中的动物应该在使用for循环的名为“message”的数组中更改为动物。
类似地,当调用backward()函数时,'.innerHTML'中的动物应更改为所述数组中该动物之前的动物
我验证了我的脚本,据推测,没有语法错误。这意味着我的逻辑有错误。请帮帮我。谢谢
HTML:
<html>
<head></head>
<body>
<p id="text">dog</p>
<div id='right' onclick="forward()"></div>
<div id="left" onclick="backward()"></div>
</body>
</html>
狗
您将永远无法调用向前
或向后
,因为它们被包装在另一个函数(总体
)中,并且您不会以任何方式返回它们。他们是私人的。您甚至在函数中也没有调用它们,所以这里显示的基本上是一个死代码:)
作为旁注:为什么要用分号代码>在<代码>之后,对于<代码>,<代码>如果<代码>和<代码>函数<代码>语句???也许您想要这样做
var message=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”];
函数forward(){
var A=document.getElementById('text');
对于(变量i=0;i
<代码>狗
正当
左
更改节点时必须停止循环
例如,初始文本是tiger
。您可以调用forward()
。循环开始,对于i=4
,它进入if内部,将#text
中的文本更改为eagle
。下一次迭代,i=5
,eagle===eagle
,您设置了johndoe
等
您只需在第一次更改后停止循环:
if (A.innerHTML===message[i]) {
A.innerHTML = message[i+1];
break;
}
一旦找到匹配的文本,就应该使用break
var message = ["dog", "cat", "bear", "penguin", "tiger", "eagle", "John Doe"];
function forward() {
var A = document.getElementById('text');
for (var i = 0; i < message.length-1; i++) {
if (A.innerHTML===message[i]) {
A.innerHTML = message[i+1];
break;
}
}
}
function backward() {
var A = document.getElementById('text');
for (var i = 0; i < message.length-1; i++) {
if (A.innerHTML===message[i]) {
A.innerHTML = message[i-1];
break;
}
}
}
var message=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”];
函数forward(){
var A=document.getElementById('text');
对于(变量i=0;i
这是普朗克
现在,你想怎么叫就怎么叫。但是您还需要检查第一个和最后一个位置,因为使用dog作为元素a中的文本调用向后函数将导致文本未定义。如果您希望文本旋转,那么也可以处理它。这有助于您:
猫
下一个
以前的
var消息=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”];
函数forward(){
var A=document.getElementById('text');
对于(变量i=0;i0;i--){
if(A.innerHTML==消息[i]){
A.innerHTML=消息[i-1];
打破
}
}
}
函数整体(){
var消息=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”];
函数forward(){
var A=document.getElementById('text');
对于(变量i=0;i0){
A.innerHTML=消息[i-1];
};
};
};
};代码>我会使用一个适用于前进和后退按钮(这里的div)的回调来完成这项工作
var message=[“狗”、“猫”、“熊”、“企鹅”、“老虎”、“鹰”、“约翰·多伊”],
pel=document.getElementById(“文本”),
idx=0,
getNext=e=>pel.innerText=e.target.id==“右”?消息[idx=++idx%message.length]
:message[idx=(message.length-(message.length----idx)%message.length)%message.length];
document.getElementById(“右”).onclick=getNe