【发布时间】:2013-12-22 23:42:45
【问题描述】:
尝试更改 DIV 标记的 css 背景。 但是我需要放一张随机图片(目前保存为1.jpg 2.jpg... 4.jpg)作为背景 我通过 JS 得到一个随机数,我发生的问题实际上是将该随机数分配为在决定将什么图像放入 DIV 标记时使用的值。
这是我得到的:
var slotImage = new Array();
slotImage[0]=Math.floor(Math.random()*4);
slotImage[1]=Math.floor(Math.random()*4);
slotImage[2]=Math.floor(Math.random()*4);
var findReplacementID, putReplacementImage;
for (findReplacementID=0;findReplacementID<3;findReplacementID++)
{
for (putReplacementImage=0;putReplacementImage<4;putReplacementImage++)
{
if (slotImage[findReplacementID] == putReplacementImage)
{
alert(slotImage[findReplacementID].toString());
document.getElementById('image' + findReplacementID).style.backgroundImage= 'url(pictures/' + putReplacementImage + 'jpg)';
}
}
}
findReplacementID 是第一个循环(我需要更改 3 个单独的 DIV 标签,每个标签名为 image1、image2 和 image3。嵌入其中的是另一个循环 putReplacementImage,它经过四次将当前随机数与存储的值进行比较在每个随机数的slotImage索引中,如果相等,我想用文件夹中对应的图片替换背景。
对不起,如果这看起来有点啰嗦。我在错误控制台上遇到的错误是
TypeError: 'null' is not an object (evaluating 'document.getElementById('image' + findReplacementID).style')
有什么想法吗?如果它没有多大意义或 TL/DR 我遇到的主要问题是在编辑 DIV 标签的背景时将变量和 ID 名称放在一起。
【问题讨论】:
-
它告诉你在你的 html 中没有 'image1' 或 'image2' 或 'image3' 。我们可以看到您的 html 或 JSFiddle/JSBin 吗?另外,您打算用
pictures/0jpg或pictures/0.jpg替换图像吗? -
编辑:那是我的 html?肯定会启动 jsfiddle :jsfiddle.net/lukes/NCT4Z/#&togetherjs=7Jeyl8GsVm
-
你意识到你不需要
</div>,你可以在结束标签前加一个斜线。 -
执行脚本时页面加载了吗?
-
是的,页面加载,当我运行它时,我收到一个 0-3 之间随机数的警报,然后执行背景更改的行没有运行并标记该错误
标签: javascript