[Actualizar]
La respuesta original se escribió antes de jQuery 1.3, y las funciones que existían en ese momento no eran adecuadas por sí mismas para calcular el ancho completo.
Ahora, como JP dice correctamente, jQuery tiene las funciones externalWidth y exteriorHeight que incluyen border
y padding
por defecto, y también margin
si el primer argumento de la función estrue
[Respuesta original]
El width
método ya no requiere el dimensions
complemento, porque se ha agregado aljQuery Core
Lo que debe hacer es obtener los valores de ancho de relleno, margen y borde de ese div en particular y agregarlos al resultado del width
método
Algo como esto:
var theDiv = $("#theDiv");
var totalWidth = theDiv.width();
totalWidth += parseInt(theDiv.css("padding-left"), 10) + parseInt(theDiv.css("padding-right"), 10); //Total Padding Width
totalWidth += parseInt(theDiv.css("margin-left"), 10) + parseInt(theDiv.css("margin-right"), 10); //Total Margin Width
totalWidth += parseInt(theDiv.css("borderLeftWidth"), 10) + parseInt(theDiv.css("borderRightWidth"), 10); //Total Border Width
Dividir en varias líneas para que sea más legible
De esa manera, siempre obtendrá el valor calculado correcto, incluso si cambia los valores de margen o margen desde el CSS