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));
......没有任何反应:(
答案 0 :(得分:3)
答案 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