使用JavaScript解析CSS样式的marginLeft

使用JavaScript解析CSS样式的marginLeft,javascript,html,css,Javascript,Html,Css,我试图使用JavaScript解析HTML元素的marginLeft属性值,但我不确定我做错了什么 我已经使用了这两种方法(带或不带,10),但使用控制台获得“当前保证金:NaN”。log: var elementMargin = document.getElementById("main"); var style = elementMargin.currentStyle || window.getComputedStyle(elementMargin); // tried this var

我试图使用
JavaScript
解析
HTML
元素的
marginLeft
属性值,但我不确定我做错了什么

我已经使用了这两种方法(带或不带
,10
),但使用
控制台获得“
当前保证金:NaN
”。log

var elementMargin = document.getElementById("main");
var style = elementMargin.currentStyle || window.getComputedStyle(elementMargin);

// tried this

var oldValue = parseInt(document.getElementById("main").style.marginLeft, 10);
console.log("Current marginLeft: " + oldValue);

// or this

var oldValue = parseInt(document.getElementById("main").style.marginLeft);
console.log("Current marginLeft: " + oldValue);
当我直接读取和
console.log
属性值时,不会出现错误:

var elementMargin = document.getElementById("main");
var style = elementMargin.currentStyle || window.getComputedStyle(elementMargin);

console.log("Current marginLeft: " + style.marginLeft); 
我得到输出“电流裕度left:199px

这是基于这篇文章:


我做错了什么?

在第一个示例中,您得到的是计算出的左边距,在样式表层叠之后,它将为您提供任何边距

在第二个和第三个示例中,您将获得
style
属性中指定的左边距。由于您得到的是
NaN
,因此这可能不是使用
style
属性设置的,
未定义的属性也是如此


parseInt
添加到您首先使用的代码中。

在第一个示例中,您将获得计算出的左边距,这将在样式表层叠后为您提供任何边距

在第二个和第三个示例中,您将获得
style
属性中指定的左边距。由于您得到的是
NaN
,因此这可能不是使用
style
属性设置的,
未定义的属性也是如此


parseInt
添加到您首先使用的代码中。

以澄清答案,以防其他人有相同的问题(感谢昆汀):

var elementMargin = document.getElementById("main");
var style = elementMargin.currentStyle || window.getComputedStyle(elementMargin);

var oldValue = parseInt(style.marginLeft, 10);
console.log("Current marginLeft: " + oldValue);

输出:“当前保证金eft:199px

以澄清答案,以防其他人有相同的问题(感谢昆汀):

var elementMargin = document.getElementById("main");
var style = elementMargin.currentStyle || window.getComputedStyle(elementMargin);

var oldValue = parseInt(style.marginLeft, 10);
console.log("Current marginLeft: " + oldValue);

输出:“当前边际剩余:199px

尝试提供一个。添加最少的HTML来演示问题。让它成为一个。尝试提供一个。添加最少的HTML来演示问题。感谢您的回复和帮助,非常感谢。如下所示:
var test=parseInt(elementMargin.currentStyle | | window.getComputedStyle(elementMargin))?别忘了基数。我创造了这个小提琴:如果你能看看我做错了什么,我将不胜感激。谢谢。您正在样式对象上运行
parseInt
,而不是在读取该对象的
marginLeft
属性时得到的带有数字的字符串。Ohhhh!谢谢。谢谢你的回应和帮助-非常感谢。如下所示:
var test=parseInt(elementMargin.currentStyle | | window.getComputedStyle(elementMargin))?别忘了基数。我创造了这个小提琴:如果你能看看我做错了什么,我将不胜感激。谢谢。您正在样式对象上运行
parseInt
,而不是在读取该对象的
marginLeft
属性时得到的带有数字的字符串。Ohhhh!非常感谢。