<div class="ui-progress" style="width: 10%;">
console.log($(this).width());
幅を%ではなくピクセルで返します。パーセンテージを取得するにはどうすればよいですか?
これを試して:
var width = $('.ui-progress').width();
var parentWidth = $('.ui-progress').offsetParent().width();
var percent = 100*width/parentWidth;
また
var width = ( 100 * parseFloat($('.ui-progress').css('width')) / parseFloat($('.ui-progress').parent().css('width')) ) + '%';
.offsetParent()
の親.ui-progress
がCSSを持っている場合に使用できますposition:absolute
。
パーセンテージがブラウザによって解釈される方法であるため、ピクセル単位で幅を返します。CSSではパーセントで表示される場合がありますが、ブラウザで表示するとピクセル値に変換されます。
console.log($(this).attr( "style"));
divが非表示の場合、%を取得できます。divが非表示の場合、$(selector).width()はパーセンテージを返します。
これが解決策です、
var xdom = $('.ui-progress')[0];
var percentWidth = xdom.style['width'];
または
var percent_width=xdom.style.width;