TS: Elementliste einer Node erzeugen

Beitrag lesen

Hello,

Unabhängig davon hatte dein Code einen weiteren logischen Fehler:

var scriptnodes = mynode.getElementsByTagName('script');
for (idx = 0; idx < scriptnodes.length; idx++) {
    mynode.removeChild(scriptnodes[idx]);
}

document.getElementsByTagName gibt eine "lebendige" HTMLCollection zurück, das heißt, dass die Länge scriptnodes.length bei jedem Schleifendurchlauf verringert wird und die Schleife somit nicht über alle Einträge iteriert hätte. Bei querySelectorAll bekommst du stattdessen eine "statische" NodeList. Da hast du also schon mal zwei Fliegen mit einer Klappe geschlagen 😉

Herzlichen Dank! Schon wieder was gelernt. :-)

Ich hatte das zwar gelesen mit der statischen Collection bei .querySelectorAll(), war jetzt aber nicht aufmerksam genug, dass gleich die rote Lampe anginge bezüglich der dynamischen Collection bei document.getElementsByTagName(). Da hätte ich die also per while-Schleife auffressen lassen müssen. Macht aber nichts. Es läuft jetzt. Aber leider nicht mit document.createDocumentFragment(). Damit komme ich noch nicht zurecht.

Ich habe stattdessen jetzt eine "lose" div-Node erzeugt und einfach das resultierende innerHTML ins innerHTML des Output-Divs geschoben. Das scheint ja zulässig zu sein.

Es hat so sowieso keinen praktischen Nutzen; es ist nur eine Übung. Für den produktiven Teil muss ich das dann mit dem PHP DOM-Parser auf dem Server überprüfen, bevor das Ergebnis abgespeichert werden darf.

Ziel ist, am CKEditor ein paar chirurgische Eingriffe machen zu können. Soweit bin ich aber noch nicht und muss auch erst den human readable Source Code suchen.

Liebe Grüße
Tom S.

--
Es gibt nichts Gutes, außer man tut es
Andersdenkende waren noch nie beliebt, aber meistens diejenigen, die die Freiheit vorangebracht haben.