Signatur
Beschreibung
Die Methode getAll() des URLSearchParams-Interfaces liefert alle Werte, die unter einem bestimmten Parameternamen gespeichert sind, in der Reihenfolge ihres Auftretens. Anders als get(), das nur den ersten Treffer zurückgibt, eignet sich getAll() für Parameter, die mehrfach vorkommen – etwa ?tag=js&tag=css.
Typische Einsatzfälle sind Filter mit Mehrfachauswahl (Checkboxen, Mehrfach-<select>), ausgewertete FormData-Objekte oder Query-Strings, die von serverseitigen Frameworks mit wiederholten Schlüsseln erzeugt werden.
Gibt es keinen Parameter mit dem angegebenen Namen, liefert die Methode ein leeres Array – nie null. Dadurch kann man das Ergebnis direkt mit map(), filter() oder length weiterverarbeiten, ohne vorher zu prüfen.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $name Pflicht | string | Name des gesuchten Parameters. Die Suche unterscheidet zwischen Groß- und Kleinschreibung; Nicht-Strings werden in einen String umgewandelt. |
Rückgabewert
Beispiele
Mehrfach vorkommende Parameter auslesen
const params = new URLSearchParams('?tag=js&tag=css&tag=html&page=2');
console.log(params.getAll('tag'));
console.log(params.get('tag')); // nur erster Wert
console.log(params.getAll('sort')); // nicht vorhanden
Filter aus der aktuellen Seiten-URL übernehmen
// z. B. https://shop.example/produkte?farbe=rot&farbe=blau&groesse=M
const url = new URL('https://shop.example/produkte?farbe=rot&farbe=blau&groesse=M');
const farben = url.searchParams.getAll('farbe');
// Checkboxen entsprechend vorauswählen (im Browser)
// document.querySelectorAll('input[name="farbe"]').forEach((cb) => {
// cb.checked = farben.includes(cb.value);
// });
console.log(`Aktive Farbfilter: ${farben.join(', ')}`);
Zahlenwerte verarbeiten und Mehrfachauswahl aus FormData
const params = new URLSearchParams('id=3&id=7&id=12');
const ids = params.getAll('id').map(Number);
console.log(ids, ids.reduce((a, b) => a + b, 0));
// Mehrfachauswahl eines Formulars
const fd = new FormData();
fd.append('sprache', 'de');
fd.append('sprache', 'en');
const query = new URLSearchParams(fd);
console.log(query.getAll('sprache'), query.toString());
// Wichtig · Fallstricke
- Immer Strings: Alle Werte sind Strings – Zahlen oder Booleans müssen selbst umgewandelt werden (
map(Number)). - PHP-/Rails-Syntax: Schlüssel wie
tag[]=a&tag[]=bwerden nicht speziell behandelt. Man muss exaktgetAll('tag[]')abfragen. - Kommaseparierte Werte:
?tag=a,bergibt["a,b"]– ein einziger Wert, kein automatisches Aufteilen. - Pluszeichen: Ein
+im Query-String wird als Leerzeichen dekodiert; echte Pluszeichen müssen als%2Bkodiert sein. - Kopie: Das zurückgegebene Array ist eine Kopie; Änderungen daran wirken sich nicht auf das
URLSearchParams-Objekt aus. - Kompatibilität: in allen modernen Browsern und Node.js verfügbar, nicht im Internet Explorer.