jQuery css(’left’)报告’px’而不是’%’

偶然发现了一个问题,我肯定必须有一个简单的解释,因为某些原因,我今天只能逃避。

如果我想确定一个绝对定位为precentage值的元素的CSS设置,jQuery只返回像素值( http://jsfiddle.net/xTUR3/2/ ):

HTML:

test
$('wrp').css('left') =

CSS:

 #wrp { position: absolute; left: -150%; width: 200%; background-color: green; height: 50%; } #out { position: absolute; top: 50%; } 

JS:

 $(document).ready(function() { var wrp = $('#wrp'); $('#out span').html(wrp.css('left')); }); 

编辑:任何人都知道是否有一种方法可以检索precentage值而无需编写专用的px-to-%转换函数?

为您制作小样品

码:

 $(document).ready(function() { var lft = $('#wrp').css("left")+""; if (lft.match("px")) { lft = (lft.split("px").join("")*1/$('#wrp').parent().width())*100; if ($.browser == "msie") lft = lft>0 ? Math.ceil(lft) : Math.floor(lft); lft += "%"; } $('#out span').html(lft); });​