为什么顶部代码有效,而底部代码却没有?
这个有效:
var i=1
function next() {
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
if (i<jsArray.length-2)
i++
else
i=0
}
这个不起作用:
var i=1
function next() {
if (i<jsArray.length-2)
i++
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
else
i=0
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
答案 0 :(得分:6)
如果您想要在if
或else
条件之后使用多个语句,则需要将它们包装在一个块中:
function next() {
if (i<jsArray.length-2) {
i++
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
else {
i=0
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
}
请注意,语法上这是等价的 - if
语句后面仍然跟一个语句(块语句)。
The grammar提供了完整的详细信息:
IfStatement :
if (
表达式)
声明else
声明
if (
表达式)
声明
这表明if
语句后面只能跟一个语句。
答案 1 :(得分:1)
如果大括号中的条件为真,则必须保留需要执行的代码块。
var i=1
function next() {
if (i<jsArray.length-2)
{
i++
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
else
{
i=0
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
}
答案 2 :(得分:0)
你需要大括号:
function next() {
if (i<jsArray.length-2) {
i++;
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
} else {
i=0;
document.getElementById("photo").src = "http://www.Example.com/images/" + jsArray[i];
}
}
我还选择添加分号。
对于JS错误/警告,您可能会发现JSLint很有用:http://www.jslint.com