[Aktualizacja]
Oryginalna odpowiedź została napisana przed jQuery 1.3, a funkcje, które istniały w tym czasie, nie były same w sobie wystarczające do obliczenia całej szerokości.
Teraz, jak słusznie stwierdza JP , jQuery ma funkcje externalWidth i externalHeight, które domyślnie zawierają borderi padding, a także marginjeśli pierwszym argumentem funkcji jesttrue
[Oryginalna odpowiedź]
Ta widthmetoda nie wymaga już dimensionswtyczki, ponieważ została dodana dojQuery Core
To, co musisz zrobić, to pobrać wartości dopełnienia, marginesu i szerokości obramowania tego konkretnego elementu div i dodać je do wyniku widthmetody
Coś takiego:
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
Podziel na wiele wierszy, aby były bardziej czytelne
W ten sposób zawsze otrzymasz poprawną obliczoną wartość, nawet jeśli zmienisz wartości dopełnienia lub marginesów z css