[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ą border
i padding
, a także margin
jeśli pierwszym argumentem funkcji jesttrue
[Oryginalna odpowiedź]
Ta width
metoda nie wymaga już dimensions
wtyczki, 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 width
metody
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