El ancho de jQuery devuelve píxeles en lugar de%

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

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

devuelve el ancho en píxeles, no en %. ¿Cómo obtengo el porcentaje?

preguntado el 12 de junio de 12 a las 15:06

4 Respuestas

Prueba esto:

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')) ) + '%';

Nota:

Puede usar el .offsetParent() si padre de .ui-progress tiene CSS position:absolute.

Respondido el 12 de junio de 12 a las 15:06

Excelente. No es 100% exacto, pero servirá. - dominó

Devuelve un ancho en píxeles porque así es como un navegador interpreta el porcentaje. Puede mostrarse como un porcentaje en su CSS, pero se convierte en un valor de píxel cuando lo muestra el navegador.

console.log($(este).attr("estilo"));

Respondido el 12 de junio de 12 a las 15:06

Puede obtener % si el div está oculto. Cuando el div está oculto, $(selector).width() devuelve el porcentaje.

contestado el 31 de mayo de 13 a las 12:05

Aquí está la solución,

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

Or

var percent_width=xdom.style.width;

respondido 04 mar '20, 13:03

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.