function changeImg(imgNumber)
{
var imgClicked = document.images[imgNumber];
接下来,把变量newImgNumber的值设置为一个0~3之间的随机数。Math.random()方法将返回一个0~1之间的随机数,只需再乘以3,即Math.random() * 3就能得到一个0~3之间的随机数。然后,使用了Math.round()方法对其进行四舍五入,就可以得到一个0~3之间的整数(即0、1、2或3)。用这个随机的整数作为myImages数组的索引,就能从myImages数组中随机地选择一幅图片。获得该随机数的代码如下所示:
var newImgNumber = Math.round(Math.random() * 3);
接下来是一个while循环语句,该while循环的作用是确保随机选出的图片不是当前被单击的那幅图片。如果当前图片对象的src属性中包含了表示随机图片名称的myImages[newImgNumber]字符串,则表示随机选出的图片与当前被单击的图片是同一幅图片,这时需要重新计算一个随机数,以选择另一幅图片。因此我们开始新一轮的循环,直到当前图片对象的src属性中不包含表示随机图片名称的myImages[newImgNumber]字符串时,indexOf()函数将返回–1,从而结束循环语句。相应的代码如下所示:
while (imgClicked.src.indexOf(myImages[newImgNumber]) != -1)
{
newImgNumber = Math.round(Math.random() * 3);
}
最后,我们将表示当前被单击图片的imgClicked对象的src属性设置为随机选出的图片。并返回一个false值,以取消图片的链接功能。这里,链接功能仅仅是为了提供一个onclick事件处理器。将imgClicked对象的src属性设置为随机图片的代码如下:
imgClicked.src = myImages[newImgNumber];
return false;
}
在下面的HTML标记中,把changeImg()函数连接到第一个<IMG>标记的事件处理器,并传入一个参数0。
<img name=img0 src="usa.gif" border="0" onclick="return changeImg(0)">
接着把changeImg()函数连接到第二个<IMG>标记的事件处理器,并传入参数1:
<img name="img1" src="mexico.gif" border="0" onclick="return
changeImg(1)">
在这里,向changeImg()函数传入参数1,以便让该函数知道当前单击图片所对应的img对象在images数组中的索引为1,即当前单击的是页面上的第二幅图片,我们需要用一幅随机选择的图片来替换第二幅图片。