2015-08-24 124 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

相關問題