Start · Sprachen · JavaScript · Referenz · URLSearchParams.getAll()

URLSearchParams.getAll()

Methode

Gibt alle Werte eines Suchparameters als Array von Strings zurück, auch wenn der Schlüssel mehrfach im Query-String vorkommt.

seit JavaScript Baseline: alle modernen Browser, Node.js 10+ (glob Kategorie: webapi

Signatur

URLSearchParams.prototype.getAll(name)

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

Typ
string[]
Beschreibung
Ein neues Array mit allen Werten (als dekodierte Strings) in der Reihenfolge ihres Auftretens. Leeres Array, wenn der Parameter nicht existiert.

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
["js", "css", "html"] js []

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(', ')}`);
Aktive Farbfilter: rot, blau

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());
[3, 7, 12] 22 ["de", "en"] sprache=de&sprache=en

// 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[]=b werden nicht speziell behandelt. Man muss exakt getAll('tag[]') abfragen.
  • Kommaseparierte Werte: ?tag=a,b ergibt ["a,b"] – ein einziger Wert, kein automatisches Aufteilen.
  • Pluszeichen: Ein + im Query-String wird als Leerzeichen dekodiert; echte Pluszeichen müssen als %2B kodiert 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.