设置CSS类后,Javascript无法获取样式
javascript unable to get style after setting css class
我有一个单元格类
.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后立即检索值?
您需要使用getComputedStyle
来获取来自CSS的样式。.style
只访问DOM元素的样式属性。
width = getComputedStyle(document.getElementById(id)).width;
如果你的底层目标是访问元素的宽度,你应该使用它的。offsetwidth属性。
style.width
只有在使用style
属性设置时才有值,而不是通过应用CSS类。
试试document.getElementById(yourIdHere).offsetWidth
不能将id参数赋值为实际元素的id。
你需要做的是,
div.id = id
编辑1
你需要使用getComputedStyle
.
alert(getComputedStyle(div).width);
JSFiddle显示了如何。
http://jsfiddle.net/kvohdnbn/相关文章:
- 使用 jQuery 获取样式属性值
- Microsoft JScript运行时错误:无法获取属性'的值;样式':对象为null或未定义
- "无法获取属性'的值;style'"当试图在IE中更改样式时
- 如何在javascript中获取样式属性的初始值
- 使用 JavaScript 获取按钮元素和样式按钮
- 获取样式的属性
- 如何从 CasperJS 获取样式表列表
- 从 javascript 获取样式设置时出现问题
- 从上一个 span 元素中获取样式
- 为什么javascript不能获取样式值,但可以更改它
- 在WordPress中,获取样式表中的网站URL
- 在javascript中设置/获取样式高度
- 如何创建一个函数来设置或获取样式属性值
- 设置CSS类后,Javascript无法获取样式
- 从head获取样式表内容
- 从ownerNode(样式标签)获取样式表对象
- JQTE文本值也正在获取样式
- 无法获取我的id's使用javascript从html中获取样式
- React Native-从函数中获取样式(Android)
- Javascript:获取样式定义不正确的元素的内容