简化jQuery功能

时间:2011-05-24 02:27:22

标签: jquery

我有以下功能:

var randomImages = ["bgr1","bgr2","bgr3","bgr4","bgr5","bgr6"];
var rndNum = Math.floor(Math.random() * randomImages.length);
$(".myDiv").css({ background: "url(/images/" + randomImages[rndNum] + ".gif)" });

由于除了最后一个数字值以外,所有图像都具有相同的名称,我不能简化这个吗?

3 个答案:

答案 0 :(得分:3)

var numImages = 6;
var rndNum = Math.floor(Math.random() * numImages) + 1;
$(".myDiv").css({ background: "url(/images/bgr" + rndNum + ".gif)" });

答案 1 :(得分:1)

是的,你可以。请注意,您可能希望定义一个常量,而不是仅使用幻数6,但这是个主意。

var rndNum = Math.floor(Math.random() * 6) + 1;
$(".myDiv").css({ background: "url(/images/bgr" + rndNum + ".gif)" });

答案 2 :(得分:1)

这看似显而易见但如果您知道有多少图像,则可以将randomImages.length替换为常量,例如: 5为了论证,那么你不需要一个数组,所以它只是一行:

$(".myDiv").css( { background: "url(/images/bgr" + Math.ceil(Math.random() * 5) + ".gif)" } );

注意:math.ceil会更好,因为你不需要+1。