Selektierte Zellen bestimmten - Ich drehe am Rad

- javascript
Hallo,
die Aufgabe klingt einfach, aber ich bekomme es nicht hin. In einer Tabelle, die via contenteditable editierbar ist, werden mehrere Zellen ausgewählt. Beim Klick auf einen Button in einem Popover Menu soll eine Funktion die Zellen (Zeilen, Spalten) ermitteln, die ausgewählt sind. Also die td-Elemente ermitteln. Ich bekomme es einfach nicht hin. Ich hatte diesen Ansatz hier, aber es wird mir dann das table-Element ausgegeben.
Wo liegt mein Denkfehler bzw. gibt es da etwas Nützliches für Tabellenauswahl (JS-Bibliothek)
const selection = window.getSelection();
const selectedElements = [];
for (let i = 0; i < selection.rangeCount; i++) {
const range = selection.getRangeAt(i);
let node = range.startContainer.childNodes[range.startOffset];
console.log(node);
selectedElements.push(node);
}
Nachtrag: auf jsfiddle klappt es https://jsfiddle.net/3kgah4tr/, ich vermute, dass dann die Ursache irgendwo anders liegt ...
Gruß Michael
Hallo Michael,
dein Fiddle wirft im Safari und im Chrome einen Fehler.
Gruß
Jürgen
Hallo Jürgen,
das habe ich auch festgestellt. Ursache hierfür ist, dass FF & Chrome sehr unterschiedlich mit getSelection() und der Selection API umgehen. Und das im Jahr 2025. Könnte man im entsprechenden Eintrag auf Selfhtml erwähnen. Man kommt nicht um eine externe Bibliothek, wenn man sich nicht damit herumärgern möchte.
Gruß Michael
Servus!
Hallo Jürgen,
das habe ich auch festgestellt. Ursache hierfür ist, dass FF & Chrome sehr unterschiedlich mit getSelection() und der Selection API umgehen. Und das im Jahr 2025. Könnte man im entsprechenden Eintrag auf Selfhtml erwähnen.
Könntest du bitte ein Minimal-Beispiel und eine Beschreibung erstellen, bei dem man den Unterschied sieht?
Man kommt nicht um eine externe Bibliothek, wenn man sich nicht damit herumärgern möchte.
Vielen Dank im Voraus!
Herzliche Grüße
Matthias Scharwies