2016-12-19 12 views
0

JavaScriptを使用してHTML要素のmarginLeftプロパティ値を解析しようとしていますが、何が間違っているのかわかりません。JavaScriptを使用してCSSスタイルmarginLeftを解析します。

私は(または,10なし)これらのメソッドの両方を使用しますが、私のconsole.logで「Current marginLeft: NaN」を取得しています

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); 

を "現在marginLeft:199px"

これはこの投稿に基づいています:Get a number for a style value WITHOUT the "px;" suffix

私は間違っていますか?

+0

[MCVEを提供試しを]。問題を示すために最小限の量のHTMLを追加してください。それを[ライブデモ]にしてください(https://stackoverflow.blog/2014/09/introducing-runnable-javascript-css-and-html-code-snippets/)。 – Quentin

答えて

0

誰にも同じ質問(クエンティンをお願い致します)があります。

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

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

出力: "現在marginLeft:199px"

2

最初の例では、の計算結果がとなり、スタイルシートがカスケードされた後のマージンがわかります。

第2および第3の例では、style属性で指定されている左余白が得られます。 NaNを取得しているので、これはおそらくstyle属性を使用して設定されていないので、undefinedです。

最初に使用したコードにparseIntを追加します。ケースには答えを明確にするために

+0

お返事ありがとうございました。このように: 'var test = parseInt(elementMargin.currentStyle || window.getComputedStyle(elementMargin));'? – onmyway

+0

基数を忘れないでください。 – Quentin

+0

私はこのFiddleを作成しました:https://jsfiddle.net/onmyway/y4u752b8/10/あなたが私が間違っていることを覗いてみることができたら、私はそれを感謝します。ありがとうございました。 – onmyway

関連する問題