如何仅使用数字输出element.style.marginTop?

时间:2015-02-18 18:06:09

标签: javascript html css3

html-page中有一个元素<elem>,它有一个margin-top: 30px属性。 当然,[elem].style.marginTop输出30px 如何制作30(没有“px”)?

UPD:
在实践中我有这个:

HTML&amp; CSS:

<div id="elem">Some text</div>
#elem {margin-top: 10px;}

JS:

var elem = document.getElementById("elem");
alert(parseString(elem.style.marginTop));

......没有任何反应:(

3 个答案:

答案 0 :(得分:3)

删除除数字之外的所有内容,并强制转换为数字

var mtop = +elem.style.marginTop.replace(/[^0-9-.]/g, '')

FIDDLE

答案 1 :(得分:2)

var mTop = parseFloat(elem.style.marginTop.replace("px",""));

这样做......

答案 2 :(得分:0)

这是一个使用 RegExp String 中找到并返回第一个基数为10的函数

function extractNumber(str) {
    return +str.replace(/^[\s\S]*?(-?(?:\d*\.)?\d+(?:e[+-]?\d+)?)[\s\S]*$/, '$1');
}

// positive
extractNumber('foo 123456789 bar'); // 123456789
// negative
extractNumber('foo -23456789 bar'); // -23456789
// decimal
extractNumber('foo 1234.6789 bar'); // 1234.6789
// e notation
extractNumber('foo 1234567e9 bar'); // 1234567000000000
extractNumber('foo 123456e+9 bar'); // 123456000000000
extractNumber('foo 123456e-9 bar'); // 0.000123456
extractNumber('foo 1234.6e-9 bar'); // 0.0000012346
// ignores e following number but not e notation
extractNumber('foo 12345678e bar'); // 12345678
// ignores subsequent decimal points
extractNumber('foo 1234.67.9 bar'); // 1234.678
// No numbers
extractNumber('foo           bar'); // NaN

所以在你的用例中

var mtop = extractNumber(elem.style.marginTop); // 30