Javascript 尝试循环和停止函数时代码中循环的区别:
当我尝试在javascript控制台中运行cycleimagesfunc()时,代码的第一部分可以工作,但第二部分就不行了。我试图跟踪每一次按键,这样按键就会触发函数运行并显示下一幅图像Javascript 尝试循环和停止函数时代码中循环的区别:,javascript,Javascript,当我尝试在javascript控制台中运行cycleimagesfunc()时,代码的第一部分可以工作,但第二部分就不行了。我试图跟踪每一次按键,这样按键就会触发函数运行并显示下一幅图像 <p id="demo8">first</p> function cycleimagesfunc(){ if(document.getElementById("demo8").innerHTML==="first"){ document.getElementById("
<p id="demo8">first</p>
function cycleimagesfunc(){
if(document.getElementById("demo8").innerHTML==="first"){
document.getElementById("demo8").innerHTML ="third";
console.log("0");
return;
}
if(document.getElementById("demo8").innerHTML==="third"){
document.getElementById("demo8").innerHTML ="fourth";
console.log("1");
return;
}
if(document.getElementById("demo8").innerHTML==="fourth"){
document.getElementById("demo8").innerHTML ="fifth";
console.log("2");
return;
}
var cyclecount = 0;
function cycleimagesfunc(){
if(cyclecount = 0){
console.log("0");
cyclecount++;
return;
}
if(cyclecount = 1){
console.log("1");
cyclecount++;
return;
}
if(cyclecount = 2){
console.log("2");
cyclecount++;
return;
}
}
首先
函数cycleimagesfunc(){
if(document.getElementById(“demo8”).innerHTML==“first”){
document.getElementById(“demo8”).innerHTML=“第三”;
控制台日志(“0”);
返回;
}
if(document.getElementById(“demo8”).innerHTML==“third”){
document.getElementById(“demo8”).innerHTML=“第四”;
控制台日志(“1”);
返回;
}
if(document.getElementById(“demo8”).innerHTML==“第四个”){
document.getElementById(“demo8”).innerHTML=“第五”;
控制台日志(“2”);
返回;
}
var循环计数=0;
函数cycleimagesfunc(){
如果(循环计数=0){
控制台日志(“0”);
cyclecount++;
返回;
}
如果(循环计数=1){
控制台日志(“1”);
cyclecount++;
返回;
}
如果(循环计数=2){
控制台日志(“2”);
cyclecount++;
返回;
}
}
问题在于使用赋值运算符(=
)而不是比较运算符(=
)或(==
)在您的条件中。这会将循环计数
改为值。请注意,使用三重等号还可以通过额外检查类型来防止“truthy”值
您也不应该在函数中运行return
,因为这将防止在满足条件后发生任何进一步的函数逻辑。您可能希望在循环计数增加后执行某些操作
在下面的示例中,条件是固定的,返回将被删除:
var cyclecount=0;
函数cycleimagesfunc(){
如果(循环计数===0){
控制台日志(“0”);
cyclecount++;
}
如果(循环计数===1){
控制台日志(“1”);
cyclecount++;
}
如果(循环计数===2){
控制台日志(“2”);
cyclecount++;
}
}
cycleimagesfunc();
问题在于使用赋值运算符(=
)而不是比较运算符(=
)或(==
)在您的条件中。这会将循环计数
改为值。请注意,使用三重等号还可以通过额外检查类型来防止“truthy”值
您也不应该在函数中运行return
,因为这将防止在满足条件后发生任何进一步的函数逻辑。您可能希望在循环计数增加后执行某些操作
在下面的示例中,条件是固定的,返回将被删除:
var cyclecount=0;
函数cycleimagesfunc(){
如果(循环计数===0){
控制台日志(“0”);
cyclecount++;
}
如果(循环计数===1){
控制台日志(“1”);
cyclecount++;
}
如果(循环计数===2){
控制台日志(“2”);
cyclecount++;
}
}
cycleimagesfunc();
问题在于在条件句中使用单等号(=
)而不是双等号(=
)。如果(cyclecount=0)
是赋值,则感谢黑曜石年龄。注意:没有代码缩进:p问题在于使用单等号(=
)而不是条件句中的双等号(=
)。感谢黑曜石时代if(cyclecount=0)
是作业。注意:您的代码缩进缺失:pI建议===
以避免真实问题。我同意,并且我已将答案更新为建议三重等于:)我建议==
以避免真实问题。我同意,并且我已将答案更新为建议三重等于:)