2016-12-19 2 views
0

Я пытаюсь разобрать значение свойства элемента HTML, используя JavaScript, но я не уверен, что я делаю неправильно.Разметка CSS-стиля marginLeft с использованием JavaScript

Я использовал оба этих метода (с или без ,10), но получить «Current marginLeft: NaN» с моим console.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); 

Я получаю выход "Текущий MarginLeft: 199px"

Основано на этом сообщении: Get a number for a style value WITHOUT the "px;" suffix

Что я делаю неправильно?

+0

Try обеспечение [mcve ]. Добавьте минимальное количество HTML, чтобы продемонстрировать проблему. Сделайте это [live demo] (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

В первом примере вы получаете вычисленное значение, которое даст вам все поля, которые после каскадирования таблицы стилей.

Во втором и третьем примерах вы получаете левое поле, указанное в атрибуте style. Поскольку вы получаете NaN, это, предположительно, не устанавливается с использованием атрибута style, а значит undefined.

Добавить parseInt в код, который вы использовали в первую очередь.

+0

Благодарим вас за ответ и помощь - высоко ценим. Например: var test = parseInt (elementMargin.currentStyle || window.getComputedStyle (elementMargin)); '? – onmyway

+0

Не забывайте о радиусе. – Quentin

+0

Я создал этот скрипт: https://jsfiddle.net/onmyway/y4u752b8/10/ Я был бы признателен, если бы вы могли заглянуть в то, что я делаю неправильно. Спасибо. – onmyway

Смежные вопросы