2015-10-09 45 views
0

後得到的風格我有一個電池類的JavaScript無法設置CSS類

.cell { 
    width:30px; 
    height:30px; 
    } 

在我createCell功能:

var createCell = function(id) { 
    var div = document.createElement('div'); 
    div.id = id; 
    div.className = 'cell'; 
    div.addEventListener('click', function() { 
     div.style.background = pickedColor; 
    }); 
    document.getElementById('gridArea').appendChild(div); 
    } 

你可以看到,我已經指派類名「細胞」 。調用該函數後,我打電話

document.getElementById(id).style.width 

它返回空字符串「」

爲什麼會這樣呢?如何在分配className後立即檢索值?

+0

回滾你的問題,請不要修改問題中的代碼,否則最初有效的答案看起來無效。如果它沒有解決問題評論的答案或在問題下面添加更新的代碼。 – Script47

+1

由於'.style'只針對該元素上的'styles',因此類中的樣式不計入該情況。 –

+1

可能重複[JavaScript獲取樣式](http://stackoverflow.com/questions/4172871/javascript-get-styles) – CBroe

回答

2

您需要使用getComputedStyle得到樣式來自CSS。 .style只是訪問DOM元素的樣式屬性。

width = getComputedStyle(document.getElementById(id)).width; 
0

您不會將ID參數指定爲實際元素的任何位置的ID。

你需要做的是什麼,

div.id = id

編輯1

您需要使用getComputedStyle

alert(getComputedStyle(div).width);

的的jsfiddle顯示如何。

http://jsfiddle.net/kvohdnbn/

+0

@OMGPOP沒問題。 – Script47

0

如果你的基本目標是訪問元素的寬度,你應該使用它的.offsetWidth屬性。

style.width只有在使用style屬性而不是通過CSS類的應用程序設置了值時纔有值。

嘗試document.getElementById(yourIdHere).offsetWidth