![]() |
SELFHTML Forumsarchiv |
|
|
Die folgende Nachricht zum Thema stammt von: Marc_CH, 31. 01. 2007, 22:24
Hallo
Ich hab mal einen eigenen Code geschrieben um Zeilenumbrüche und Leerzeichen aus dem DOM zu entfernen. Ich wollte hier eigentlich nur mal wissen ob ich es auch einfacher machen könnte resp. ob ich etwas an meinem Code verbesseren kann. Danke schonmal :).
window.onload = function() {
DOM4FireFox(document.getElementsByTagName("body")[0]);
}
function DOM4FireFox(elm) {
var character = "";
for(var i=0; i<elm.childNodes.length; i++) {
character = String(elm.childNodes[i].nodeValue);
//Löscht Elemente die Zeilenumbrüche(10) und Leerzeichen(32) sind.
if(elm.childNodes[i].nodeType == 3 && (character.charCodeAt(0) == "10" || character.charCodeAt(0) == "32")) {
elm.removeChild(elm.childNodes[i]);
}
//Die Funktion für alle Kindknoten wiederholen.
if(elm.childNodes[i] && elm.childNodes[i].hasChildNodes) {
DOM4FireFox(elm.childNodes[i]);
}
}
}
Die folgende Nachricht zum Thema stammt von: Marc_CH, 31. 01. 2007, 23:40
hab mal noch 'ne kürzere Version gemacht:
function DOM4FireFoxV3(elm) {
for(var i=0; i<elm.childNodes.length; i++) {
if(elm.childNodes[i].nodeType == 3 && /[^\t|\s]/.test(elm.childNodes[i])) {
elm.removeChild(elm.childNodes[i]);
}
//Die Funktion für alle Kindknoten wiederholen.
if(elm.childNodes[i] && elm.childNodes[i].hasChildNodes) {
DOM4FireFox(elm.childNodes[i]);
}
}
}
Die folgende Nachricht zum Thema stammt von: rfb, 01. 02. 2007, 08:05
Moin
nur aus Interesse:
gibts eine praktische Verwendung oder ist das eine Programmierübung?
Gruß
rfb
--
Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
(Galileo Galilei)
Die folgende Nachricht zum Thema stammt von: Marc_CH, 01. 02. 2007, 12:22
»» Moin
»»
»» nur aus Interesse:
»» gibts eine praktische Verwendung oder ist das eine Programmierübung?
»»
»» Gruß
»» rfb
nein dafür gibt es schon eine praktische verwendung. hab mir mal das hier angesehen: http://developer.mozilla.org/en/docs/Whitespace_in_the_DOM, und mir gedacht ich mach mal eine eigene funktion. und nun wollte ich eigentlich nur wissen ob meine funktion auch richtig ist oder ob ich einen überlegungsfehler gemacht habe...
Die folgende Nachricht zum Thema stammt von: rfb, 01. 02. 2007, 12:32
Moin
»» oder ob ich einen überlegungsfehler gemacht habe...
bin mir gerade nicht sicher wie das mit childNodes ist, aber wenn ich ein Array durchgehe und dabei gelegentlich Elemente löschen will lasse ich den Index immer vom letzten zum ersten Element laufen, so bleiben die Indices der noch zu bearbeitenden Elemente konstant trotz Array-Änderung.
Gruß
rfb
--
Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
(Galileo Galilei)
© 1998-2006
Impressum, Software: Classic Forum