2015-08-24 68 views
-1

我目前正在研究一个记忆游戏,其中有一个填充了通过js创建的div的游戏板。我试图将图像添加到我的数组值。 这里是我的数组:有没有一种方法来设置js中的单个数组元素

var memory_array = ['A', 'A', 'B', 'B', 'C', 'C', 'D', 'D', 'E', 'E', 'F', 'F', 'G', 'G', 'H', 'H']; 

我想的图像连接到每对做我的项目更有趣。我目前正在尝试 memory_array[0].style.background-image,它正在破坏我的项目。任何帮助将不胜感激。

+0

它以什么方式打破你的项目? –

+0

你能展示更多的代码吗?你想存储一个图像名称与数组中的每个字母?或者你问如何使用js数组作为数据模型显示html元素? – raduation

+1

你可以在DOM树中设计一个元素,但是你不能设计一个js数组的样式。可能你有一个错误,如_“风格不是memory_array的属性”_ – fcalderan

回答

-1

它不工作的原因是因为你的数组元素是字符串而不是对象。一个简单的解决办法是让你的数组是这样的:

var memory_array = [{name:'A'}, {name:'B'}, ...]; 

现在,调用memory_array[0].style-background-image:"SomeImage"后;你的第一个元素将成为:

{name: 'A', 
style-background-image: "SomeImage" 
} 

注意这并没有变化直接任意风格。当构建DOM元素,你将不得不致电酒店style.backgroundImage并将其应用到每个元素

+0

谢谢你的回应。我会继续使用我的样式表还是脚本文件中的样式名称? – Tone

+0

@Tone我会催促你使用样式表,如果可以的话,只有当CSS不能满足你的需要时才会诉诸js。请张贴您生成'divs'的js部分,以便我们更好地理解您的问题。 –

+0

'memory_array [0] .style.background-image =“SomeImage”'是无效的语法。 –

0

这是.backgroundImage,但你的阵列由char值的,他们没有财产style。要拨打.style,您必须获取DOM元素f.e.与document.getElementByIddocument.getElementsByClassName。我会建议给他们类名(.className),并设置在CSS中的图像,而不是直接使用.style.backgroundImage

+0

你能给我一个添加className到我的数组中的第一个元素的例子吗? – Tone

+0

你为什么想这样做?就像我说的,你首先必须创建/获取DOM元素,在数组元素上设置'.className'不会改变外观。 –

+0

我的问题是数组元素不是静态的。在页面刷新时,它们是随机的。我知道如何设计静态div,但我想要设计随机元素的样式。例如。点击div会显示我的一个字母元素。我没有透露一封信,而是想透露我选择的图像。 – Tone

相关问题