Dominik: Attribut wird nicht erkannt

Hallo Forum.

Ich habe folgendes Java-Skript geschrieben:

<script language="javascript" type="text/javascript">

function klappen(oberpunkt, amount, text){
        for(var i = 0; i < document.getElementsByTagName("tr").length; i++){
                if(document.getElementsByTagName("tr")[i].attributes.id == "um"){
                alert("Aha!");
                }
        }
var ct = eval(document.createTextNode);
var ce = eval(document.createElement);
        switch(oberpunkt){
        case "Gästebuch":
        neu1 = ct("Neuer Eintrag");
        neu2 = ce("a");
        neu2.href = "guestbook.html"; neu2.target = "Seite";
        neu3 = ce("td");
        neu4 = ce("tr");
        neu4.id = "um";
        neu2.appendChild(neu1);
       neu3.appendChild(neu2);
       neu4.appendChild(neu3);
        document.getElementById("Gästebuch"+"R").appendChild(neu4);
        neu1 = ct("Alte Einträge");
       neu2 = ce("a");
        neu2.href = "guestbookshow.php"; neu2.target = "Seite";
        neu3 = ce("td");
        neu4 = ce("tr");
        neu4.id = "um";
   neu2.appendChild(neu1);
        neu3.appendChild(neu2);
        neu4.appendChild(neu3);
        document.getElementById("Gästebuch"+"R").appendChild(neu4);
       break;
        }
}
</script>

leider wird in der for-schleife die if-abfrage nicht auf true gesetzt, obwohl ich darunter dem neu erschaffenen element neu4 die richtige id zuweise.
es ist übrigens gewollt, dass beim ersten aufruf noch kein tr-objekt mit dieser id vorhanden ist und somit auch nciht erkannt werden kann. aber es dann auch bei weiteren durchläufen kein tr-objekt mit id = "um" erkannt, und das versteh ich nicht.

  1. Hallo Forum.

    Ich habe folgendes Java-Skript geschrieben:

    <script language="javascript" type="text/javascript">

    function klappen(oberpunkt, amount, text){
            for(var i = 0; i < document.getElementsByTagName("tr").length; i++){
                    if(document.getElementsByTagName("tr")[i].attributes.id == "um"){
                    alert("Aha!");
                    }
            }
    var ct = eval(document.createTextNode);
    var ce = eval(document.createElement);
            switch(oberpunkt){
            case "Gästebuch":
            neu1 = ct("Neuer Eintrag");
            neu2 = ce("a");
            neu2.href = "guestbook.html"; neu2.target = "Seite";
            neu3 = ce("td");
            neu4 = ce("tr");
            neu4.id = "um";
            neu2.appendChild(neu1);
           neu3.appendChild(neu2);
           neu4.appendChild(neu3);
            document.getElementById("Gästebuch"+"R").appendChild(neu4);
            neu1 = ct("Alte Einträge");
           neu2 = ce("a");
            neu2.href = "guestbookshow.php"; neu2.target = "Seite";
            neu3 = ce("td");
            neu4 = ce("tr");
            neu4.id = "um";
       neu2.appendChild(neu1);
            neu3.appendChild(neu2);
            neu4.appendChild(neu3);
            document.getElementById("Gästebuch"+"R").appendChild(neu4);
           break;
            }
    }
    </script>

    leider wird in der for-schleife die if-abfrage nicht auf true gesetzt, obwohl ich darunter dem neu erschaffenen element neu4 die richtige id zuweise.
    es ist übrigens gewollt, dass beim ersten aufruf noch kein tr-objekt mit dieser id vorhanden ist und somit auch nciht erkannt werden kann. aber es dann auch bei weiteren durchläufen kein tr-objekt mit id = "um" erkannt, und das versteh ich nicht.

    Hi,

    isch weiss net so genau, aber rein von der Logik her würde ich in der if-schleife

    document.getElementByTagName("tr")[i] ....
    anstatt
    document.getElementsByTagName("tr")[i]...

    Aber wie gesagt, ich weiß net ob das der Fehler ist, so gut kenn ich mich dann in JS auch nich aus... ;)

    moggel

    1. Hallo,

      if(document.getElementsByTagName("tr")[i].attributes.id == "um")

      Versuche es mit:

      document.getElementsByTagName("tr")[i].getAttribute("id")
      oder
      document.getElementsByTagName("tr")[i].id

      MfG, Thomas

      PS: Die Objekte werden auch ohne eval() erzeugt.

      1. Hallo,

        if(document.getElementsByTagName("tr")[i].attributes.id == "um")

        Versuche es mit:

        document.getElementsByTagName("tr")[i].getAttribute("id")
        oder
        document.getElementsByTagName("tr")[i].id

        MfG, Thomas

        PS: Die Objekte werden auch ohne eval() erzeugt.

        hi thomas,

        danke für die hilfe. das erste funktioniert nicht aber das zweite klappt.