AnonymousXXS: Problem mit getElementsByTagName

Hallo Community!
Ich habe ien Problem mit einer for-Schliefe und getElementsByTagName(). Und zwar möchte ich alle Elemente zu einer ajax-abfrage umformen.. das ganze mache ich so:
this.postString = '';

for(i=0;i<=document.getElementsByTagName('input').length;i++){

this.input = document.getElementsByTagName('input');
        this.name = this.input[i].name;
        this.value = this.input[i].value;

if(i==0){
        this.postString += this.input[0].name + '=' + escape(this.input[0].value);
      }else{
        this.postString += '&' + this.name+ '=' + escape(this.value);
      }
Leider kommt immer die Fehlermeldung:
Fehler: this.input[i] has no properties
Quelldatei: http://localhost/gbook/templates/1/js_functions.js
Zeile: 94

Ich hoffe auf hilfe!
Gruß, AnonymousXXS

  1. hi,

    for(i=0;i<=document.getElementsByTagName('input').length;i++){
            this.input = document.getElementsByTagName('input');

    Warum ermittelst du das hier bei jedem Schleifendurchlauf erneut?
    Einmal davor reicht.

    Und auch in der Abbruchbedingung den Wert jedes mal neu zu ermitteln, ist unperformant.

    Leider kommt immer die Fehlermeldung:
    Fehler: this.input[i] has no properties

    Javascript zählt bei Null beginnend.
    Wenn ein Array mit nullbasiertem, fortlaufendem Index, oder eine NodeList wie in diesem Fall, also x Einträge/Elemente hat - dann haben die Indices von 0 bis x-1.
    Deine Schleife läuft nur leider von 0 bis x, weil du in der Abbruchbedingung <= length verwendet hast.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Hallo wahsaga!
      Lag tatsächlich an dem <= ;-) Flüchtigekitsfehler, manchmal ist man echt blind.. Das ich "this.input = document.getElementsByTagName('input');" besser vor der SCHleife hätte notieren sollen ist richtig, nur verstehe ich net ganz, was du für eine Abbruchbedingung meinst

      1. Moin

        was du für eine Abbruchbedingung meinst

        die der for-Schleife, auch darin rufst du jedesmal getElementsByTagName auf. this.length täts doch auch.

        Gruß
        rfb

        --
        Man kann einen Menschen nichts lehren, man kann ihm nur helfen, es selbst zu entdecken.
        (Galileo Galilei)