parseInt("7em", 10);7在我测试的所有浏览器中返回[*].但我可以依靠这个吗?
我问的原因是,我想基于em执行一些计算,比如
/* elem1.style.top uses em units */
elem2.style.top = parseInt(elem1.style.top, 10) + 1 + "em";
Run Code Online (Sandbox Code Playgroud)
我可以使用正则表达式执行此操作,但parseInt更易于使用,并且可能更快一些.或者是否有另一种解决方案(也许使用jQuery)?
[*]到目前为止测试过:IE 6,IE 8,Safari 4,Firefox 3.6,Opera 10.5
这是符合标准的行为.ECMA-262第15.1.2.2节规定
parseInt只能将字符串的前导部分解释为整数值; 它忽略任何不能被解释为整数表示法的一部分的字符,并且没有指出任何这样的字符被忽略.
我更担心的是,在未来的某个时刻,elem2.style.top意志的单位会发生变化.在这种情况下,这段代码可能会200px变成200em,这可能会造成很大的混乱.
| 归档时间: |
|
| 查看次数: |
1000 次 |
| 最近记录: |