ChrisB: Ist dieses Thema "durch"?

Beitrag lesen

Hi,

Liebe JS-Profis, was macht diese Funktion hier:

Field.prototype.ResetClass = function(){
if ( (this.type != "button") && (this.type != "submit") && (this.type != "reset") ) {
    if ( (this.elements) && (this.elements.length > 0)) {
       for (var i = 0; i < this.elements.length; ++i){
       if(this.elements[i].oldClassName){
            this.elements[i].className = this.elements[i].oldClassName;
          }
          else {
          this.element.className = "";
        }
       }
    }else{
    if(this.elements.oldClassName){
          this.element.className = this.element.oldClassName;
        }
        else {
          this.element.className = "";
        }
    };
};
};

  
Im wesentlichen das, was ihr Name schon aussagt - die Klasse zurücksetzen.  
  
Wenn es sich bei dem Element, „auf“ dem sie aufgerufen wird, um einen Formular-Button handelt – dann lässt sie einfach die Finger davon.  
Andernfalls, wenn es sich um ein Formular handelt, durchläuft sie alle dessen Elemente – oder kümmert sich, wenn es nur ein spezifisches Formularelement ist, nur um dieses.  
Beim zurücksetzen schau sie, ob ein vorheriger Inhalt des class-Attributes in der Eigenschaft oldClassName zwischengespeichert wurde – wenn ja, stellt sie diesen wieder her, andernfalls weist sie einen Leerstring zu.  
  
Da scheint mir auch der Fehler zu liegen – denn offenbar kommt der Autor hier selber damit durcheinander, auf was er eigentlich gerade operiert.  
this.elements, this.elements[i] und this.element werden hier so bunt gemixt angesprochen, dass das kaum einen Sinn ergibt.  
  
MfG ChrisB  
  

-- 
RGB is totally confusing - I mean, at least #C0FFEE should be brown, right?