Marc_CH: DOM und Whitespaces (mein Code)

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]);
     }
    }
   }

  1. 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]);
         }
        }
       }

    1. 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)
      1. 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...

        1. 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)