DOM und Whitespaces (mein Code)
Marc_CH
- javascript
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]);
}
}
}
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]);
}
}
}
Moin
nur aus Interesse:
gibts eine praktische Verwendung oder ist das eine Programmierübung?
Gruß
rfb
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...
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