我有一个细胞类
.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);
}
如您所见,我已将className分配给' cell'。调用此函数后,我调用
document.getElementById(id).style.width
返回空字符串""
为什么会这样?如何在分配className后立即检索值?
答案 0 :(得分:2)
您需要使用getComputedStyle
来获取来自CSS的样式。 .style
只是访问DOM元素的样式属性。
width = getComputedStyle(document.getElementById(id)).width;
答案 1 :(得分:0)
您不会将id参数指定为实际元素的id。
你需要做的就是这个,
div.id = id
修改1
您需要使用getComputedStyle
。
alert(getComputedStyle(div).width);
JSFiddle显示了如何。
答案 2 :(得分:0)
如果您的基本目标是访问元素的宽度,则应使用其.offsetWidth属性。
如果使用style.width
属性设置了一个值,那么 style
将只有一个值,而不是通过应用CSS类。
尝试document.getElementById(yourIdHere).offsetWidth