2011-05-09 50 views
6
<div style="left: 100%"></div> 

parseInt($("div").css("left"), 10); 

当我尝试获得left的值时,某些浏览器以像素为单位给出结果,其中一些以%表示。parseInt%和px问题

下面是一个例子http://jsfiddle.net/WTt4s/1/

谷歌浏览器提供了百分比值,IE9给人像素代替。

如何在所有浏览器中获得相同的值(px或%)?

+2

你检查'top'的实际文本值?它仍然在百分之几还是让浏览器将它转换为像素?如果它仍然以百分比表示,如果在执行parseInt之前剥离'%'字符会发生什么情况? - $(“div”).css(“top”)。replace('%','')' – Spudley 2011-05-09 14:30:04

+2

'alert($(“div”).css(“top”))代替'parseInt'? – 2011-05-09 14:30:12

+0

它似乎不像parseInt问题,但与浏览器相关的行为 – VirtualTroll 2011-05-09 14:32:17

回答

4

试试这个parseInt($("div")[0].style.top, 10)

+0

上添加了一个测试用例我用你的jsFiddle获得了“90” - http://jsfiddle.net/WTt4s/2/ – DanielB 2011-05-09 14:57:19

0

尝试使用.offset().top.position().top代替