<html lang="en">
<head>
<title>Chapter 10: Example 1</title>
</head>
<body>
<img src="usa.gif" onclick="changeImg(this)" />
<img src="mexico.gif" onclick="changeImg(this)" />
<script>
var myImages = [
"usa.gif",
"canada.gif",
"jamaica.gif",
"mexico.gif"
];
function changeImg(that) {
var newImgNumber = Math.round(Math.random() * 3);
while (that.src.indexOf(myImages[newImgNumber]) != -1) {
newImgNumber = Math.round(Math.random() * 3);
}
that.src = myImages[newImgNumber];
}
</script>
</body>
</html>
该程序的作者在解释代码时说: while循环的目的是确保你不会选择与当前相同的图像。如果在当前图像的src属性中找到包含在myImages[newImgNumber]
中的字符串,则知道它是相同的,并且您需要获得另一个随机数。您将保持循环,直到获得新图像,此时不会找到myImages[newImgNumber]
在现有的弧中,-1将由indexOf()
方法返回,从而跳出循环。在Javascript程序中无法理解?
我根本无法得到解释。任何人都可以解释我相同的换句话说?代码来自Beginning Javascript 5e,Jeremy Mcpeak,Chapter Events。
这里的每个人都会给出与作者一样的解释。你无法理解哪部分?也许[indexOf()](http://www.w3schools.com/jsref/jsref_indexof.asp)会有所帮助。 – Zee
唉,实际上这里的每个人都会尝试猜测OP发现哪个部分令人困惑。他们中的大多数或全部将浪费他们的时间。 –