jQuery宽度返回像素而不是%

时间:2012-06-12 14:33:28

标签: jquery jquery-ui

 <div class="ui-progress" style="width: 10%;">

 console.log($(this).width());

以像素为单位返回宽度而不是%。我如何获得百分比?

4 个答案:

答案 0 :(得分:7)

试试这个:

var width = $('.ui-progress').width();
var parentWidth = $('.ui-progress').offsetParent().width();
var percent = 100*width/parentWidth;

OR

var width = ( 100 * parseFloat($('.ui-progress').css('width')) / parseFloat($('.ui-progress').parent().css('width')) ) + '%';

注意

如果.offsetParent()的父级有CSS .ui-progress,则可以使用position:absolute

答案 1 :(得分:0)

它返回一个以像素为单位的宽度,因为这是浏览器解释百分比的方式。它可能会在CSS中显示为百分比,但在浏览器显示时会变为像素值。

的console.log($(本).attr( “风格”));

答案 2 :(得分:0)

如果div被隐藏,您可以获得%。当div被隐藏时$(selector).width()返回百分比。

答案 3 :(得分:0)

这是解决方案,

var xdom = $('.ui-progress')[0];
var percentWidth = xdom.style['width'];

var percent_width=xdom.style.width;