16/08/2025
jQuery width() Metoden: En Dybdegående Guide
I moderne webudvikling er det essentielt at have kontrol over elementernes dimensioner. jQuery, et populært JavaScript-bibliotek, tilbyder en brugervenlig og effektiv metode til netop dette: width(). Denne metode giver udviklere mulighed for at både hente den aktuelle bredde af et element og sætte en ny bredde, alt sammen uden at inkludere elementets polstring (padding), kant (border) eller margen (margin). Dette gør den til et uundværligt værktøj for enhver, der arbejder med dynamiske websteder og brugergrænseflader.

Hvad er jQuery width()?
jQuery.width() er en indbygget metode i jQuery-biblioteket. Dens primære funktion er at manipulere bredden af de elementer, du vælger på din webside. Metoden kan bruges i to hovedscenarier:
- Til at hente bredden: Når
width()kaldes uden argumenter på et jQuery-objekt, returnerer den bredden af det første matchende element i sættet. Denne bredde returneres som et tal i pixels (px). - Til at sætte bredden: Når
width()kaldes med et argument (en værdi), sætter den bredden af alle matchende elementer i det valgte sæt. Værdien kan angives i forskellige enheder som pixels (px), em, pt osv., hvor px er standardenheden, hvis ingen angives.
Det er vigtigt at bemærke, at width() metoden udelukker bredden af polstring, kant og margen. Hvis du har brug for at inkludere disse, skal du bruge metoder som innerWidth(), outerWidth() eller outerWidth(true), som vi vil berøre senere.
Syntaks for width() Metoden
jQuerys width() metode har en simpel og intuitiv syntaks:
1. Hentning af Bredden
For at få bredden af et element bruger du følgende syntaks:
$(selector).width();
Returneringsværdi: Metoden returnerer et tal, der repræsenterer bredden af det valgte element i pixels.
2. Sætning af Bredden
For at ændre bredden af et eller flere elementer bruger du følgende syntaks:
$(selector).width(value);
Parameter:
value: Dette er den ønskede bredde. Det kan være et tal (hvilket antages at være i pixels) eller en streng, der angiver bredden med en specifik enhed (f.eks. "300px", "50em", "200pt").
Returneringsværdi: Metoden returnerer jQuery-objektet selv, hvilket muliggør kædeoperationer (chaining).
3. Sætning af Bredden vha. en Funktion
jQuery tillader også at sætte bredden baseret på en funktion, der beregner den nye bredde. Dette er nyttigt, når bredden skal afhænge af elementets aktuelle tilstand eller andre faktorer.
$(selector).width(function(index, currentWidth) { // Din logik her return newWidth; }); Parametre:
index: Indekset for det aktuelle element i det valgte sæt.currentWidth: Den aktuelle bredde af det element, funktionen kaldes for.
Returneringsværdi: Funktionen skal returnere den nye bredde, som skal sættes for elementet.
Hvordan Fungerer width() Metoden?
Kernen i width() metoden er dens evne til at interagere direkte med CSS-boksen for et element. Når du bruger den til at hente bredden, inspicerer jQuery elementets CSS-egenskab width. Det er vigtigt at huske, at dette er den CSS-definerede bredde, som ikke inkluderer polstring, kant eller margen. Hvis elementet har en dynamisk bredde (f.eks. sat af et `width: auto;` i CSS), vil jQuery forsøge at returnere den faktiske beregnede bredde i browserens layout.
Når du bruger width() til at sætte bredden, tilføjer jQuery eller modificerer inline-stilen for elementet med den angivne bredde. For eksempel, hvis du skriver $("#myDiv").width(300);, vil det resultere i noget lignende `
`.
Eksempler på Brug af width()
Lad os se på nogle praktiske eksempler for at illustrere, hvordan width() metoden kan bruges.
Eksempel 1: Hentning af Elementbredder
Dette eksempel viser, hvordan man henter bredden af vinduet, dokumentet og et specifikt DIV-element.
<!doctype html> <html lang = "en"> <head> <meta charset="utf-8"> <title> jQuery width() Eksempel </title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <style> #minDiv { height: 100px; width: 200px; padding: 20px; margin: 1px; border: 2px solid red; background-color: lightyellow; } </style> <script type = "text/javascript"> $(document).ready(function () { $("#vindueKnap").click(function() { var str = "Vinduesbredde: " + $(window).width()+ "px."; $("h2").html(str); }); $("#dokumentKnap").click(function() { var str = "Dokumentbredde: " + $(document).width()+ "px."; $("h2").html(str); }); $("#divKnap").click(function() { var str = "DIV bredde: " + $("#minDiv").width()+ "px."; $("#minDiv").html(str); }); }); </script> </head> <body> <h3> jQuery width() Eksempel: Hent Bredde </h3> <button id = "vindueKnap" > Hent vinduesbredde </button> <button id = "dokumentKnap" > Hent dokumentbredde </button> <button id = "divKnap" > Hent DIV bredde </button> <h2></h2> <div id = "minDiv"> Dette er en DIV. </div> </body> </html>Forklaring:
$(window).width(): Returnerer bredden af browserens synlige vindue (viewport).$(document).width(): Returnerer bredden af hele dokumentets indhold, som kan være bredere end vinduet, hvis indholdet kræver det (f.eks. på grund af horisontal scrolling).$("#minDiv").width(): Returnerer den CSS-definerede bredde af elementet med ID'et "minDiv", hvilket i dette tilfælde er 200px, da polstring og kant ikke medregnes.
Eksempel 2: Sætning af Elementbredder
Dette eksempel viser, hvordan man dynamisk ændrer bredden af et DIV-element ved at klikke på radio-knapper.
<!doctype html> <html lang = "en"> <head> <meta charset="utf-8"> <title> jQuery width() Eksempel </title> <script src = "https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <style> #minDiv { height: 100px; width: 200px; padding: 20px; margin: 1px; border: 2px solid red; background-color: lightyellow; transition: width 0.3s ease-in-out; } </style> <script type = "text/javascript"> $(document).ready(function () { $("#pxKnap").click(function() { $("#minDiv").width( "400px" ); }); $("#ptKnap").click(function() { $("#minDiv").width( "200pt" ); }); $("#emKnap").click(function() { $("#minDiv").width( "20em" ); }); }); </script> </head> <body> <h3> jQuery width() Eksempel: Sæt Bredde </h3> <label><input type="radio" name="breddeValg" id="pxKnap"> Sæt til 400px</label> <br> <label><input type="radio" name="breddeValg" id="ptKnap"> Sæt til 200pt</label> <br> <label><input type="radio" name="breddeValg" id="emKnap"> Sæt til 20em</label> <br> <div id = "minDiv"> Dette er en DIV. </div> </body> </html>Forklaring:
- Ved at klikke på hver radio-knap kaldes
width()metoden med en specifik værdi (enten "400px", "200pt" eller "20em"). Dette ændrer øjeblikkeligt bredden af DIV-elementet. Bemærk, at "em" enheden er relativ til fontstørrelsen på forældre-elementet.
width() vs. innerWidth() vs. outerWidth()
Det er vigtigt at forstå forskellen mellem width() og andre relaterede metoder:
| Metode | Beskrivelse |
|---|---|
width() | Henter eller sætter bredden af elementet, eksklusive polstring, kant og margen. |
innerWidth() | Henter eller sætter bredden af elementet, inklusive polstring, men eksklusive kant og margen. |
outerWidth() | Henter eller sætter bredden af elementet, inklusive polstring og kant, men eksklusive margen. |
outerWidth(true) | Henter eller sætter bredden af elementet, inklusive polstring, kant og margen. |
Valget af metode afhænger af, præcis hvilken dimension du har brug for at arbejde med. For layoutformål er width() ofte tilstrækkelig, men hvis du skal placere elementer nøjagtigt i forhold til hinanden, kan outerWidth(true) være mere relevant.
Ofte Stillede Spørgsmål (FAQ)
Spørgsmål 1: Hvilken enhed bruger width() som standard?
Svar: Hvis du angiver bredden som et rent tal (f.eks. .width(300)), antager jQuery, at enheden er pixels (px).
Spørgsmål 2: Hvad sker der, hvis jeg bruger width() på et element uden en defineret bredde?
Svar: Hvis elementet har en CSS-regel som width: auto;, vil width() forsøge at returnere den faktiske beregnede bredde af elementet i browserens layout. Hvis elementet er inline, kan resultatet variere.
Spørgsmål 3: Kan jeg bruge width() til at få bredden af flere elementer samtidigt?
Svar: Når du bruger width() til at hente bredden, returnerer den kun bredden af det første matchende element. Hvis du har brug for bredden af alle elementer, bliver du nødt til at iterere over dem (f.eks. med .each()).
Spørgsmål 4: Hvordan påvirker box-sizing CSS-egenskaben width()?
Svar: jQuerys width() metode respekterer box-sizing. Hvis `box-sizing: border-box;` er angivet, vil den returnerede bredde inkludere polstring og kant, selvom metoden teknisk set refererer til indholdsbredden. Dette kan være en kilde til forvirring, så det er altid en god idé at være opmærksom på din CSS.
Konklusion
jQuerys width() metode er et kraftfuldt og fleksibelt værktøj for enhver webudvikler. Den giver en enkel måde at kontrollere elementers bredde på, hvilket er afgørende for at skabe responsive og visuelt tiltalende webdesigns. Ved at forstå dens syntaks, funktionalitet og forskellen fra relaterede metoder som innerWidth() og outerWidth(), kan du effektivt manipulere dimensionerne af dine web-elementer og forbedre brugeroplevelsen markant.
Hvis du vil læse andre artikler, der ligner Forstå jQuery width() metoden, kan du besøge kategorien Teknologi.
