Signatur
Beschreibung
Die Methode clear() der Schnittstelle SVGNumberList löscht alle SVGNumber-Objekte aus der Liste. Danach ist die Liste leer, und numberOfItems bzw. length liefern 0.
Eine SVGNumberList begegnet dir vor allem über baseVal einer SVGAnimatedNumberList. Beispiele sind das Attribut rotate von <text>/<tspan> (text.rotate.baseVal), values von <feColorMatrix>, kernelMatrix von <feConvolveMatrix> und tableValues der Übertragungsfunktionen (Transferfunktionen) in <feComponentTransfer>.
Die Liste ist „live“ mit dem Attribut verbunden. Änderungen über clear() wirken sich also sofort auf das zugehörige Attribut und die Darstellung aus. Meist nutzt man clear(), um eine Liste komplett neu aufzubauen: erst leeren, dann mit appendItem() neue Werte anhängen. Wenn du die Liste nur durch einen einzigen Wert ersetzen willst, geht das direkter mit initialize().
Rückgabewert
Beispiele
Rotation einzelner Zeichen zurücksetzen
// <svg><text id="label" x="10" y="40" rotate="10 20 30">SVG</text></svg>
const text = document.getElementById('label');
const rotations = text.rotate.baseVal;
console.log(rotations.numberOfItems); // 3
rotations.clear();
console.log(rotations.numberOfItems); // 0
console.log(text.getAttribute('rotate'));
Liste leeren und mit neuen Werten neu aufbauen
const svg = document.querySelector('svg');
const text = svg.querySelector('text');
const list = text.rotate.baseVal;
const setRotations = (angles) => {
list.clear();
for (const angle of angles) {
const num = svg.createSVGNumber();
num.value = angle;
list.appendItem(num);
}
};
setRotations([0, 15, 30, 45]);
console.log(text.getAttribute('rotate'));
Farbmatrix eines Filters zurücksetzen
// <filter id="f"><feColorMatrix id="cm" type="matrix" values="..."/></filter>
const matrix = document.getElementById('cm');
const values = matrix.values.baseVal;
values.clear();
console.log(values.length); // 0 – der Filter nutzt jetzt den Standardwert (Einheitsmatrix)
Fehler bei schreibgeschützter animVal-Liste
const text = document.querySelector('text');
try {
text.rotate.animVal.clear();
} catch (err) {
console.log(err.name);
}
// Wichtig · Fallstricke
- Schreibschutz: Ist die Liste schreibgeschützt, wirft
clear()eineDOMExceptionvom TypNoModificationAllowedError. Das betrifft insbesondereanimVal. Ändere deshalb immerbaseVal. - Referenzen:
SVGNumber-Objekte, die du vorher aus der Liste gelesen hast, gehören nachclear()nicht mehr zur Liste. Wenn du sie änderst, hat das keine Wirkung mehr auf das Attribut. - Leere Liste mit Folgen: Bei manchen Attributen hat eine leere Liste eine eigene Bedeutung. Bei
feColorMatrixgreift zum Beispiel wieder der Standardwert, undfeConvolveMatrixmit leererkernelMatrixist ungültig und kann den Filter deaktivieren. - Kompatibilität: Wird von allen modernen Browsern unterstützt.
lengthals Alias fürnumberOfItemsfehlt in sehr alten Browsern.