Philipp: has no properties abfragen

Hallo

Wie kann ich den Fall abfangen das folgendes Object keine Eigenschaften hat? Hab schon folgendes probiert:

response.getElementsByTagName('level')[j].firstChild.data.isEmpty()

response.getElementsByTagName('level')[j].firstChild.data.exists()

response.getElementsByTagName('level')[j].firstChild.data=NULL

response.getElementsByTagName('level')[j].firstChild.data=0

Oder geht das nur mit einem try catch block? Sollte naemlich das ganze in einer while schleife abfragen. Das er mir auslesen soll solange bis nix mehr da ist

Gruss
Philipp

  1. Tag,
    Vielleicht so?

    var objekt = response.getElementsByTagName('level')[j].firstChild.data.isEmpty();

    var cnt = 0;
    for (var prop in objekt) {cnt++;break;}

    if (cnt == 0) { //Keine Eigenschaften}
    else {//Eigenschaften}

    Viele Grüße und schönes WE,

    Jörg

    1. Hups, sorry,

      var objekt = response.getElementsByTagName('level'[[j].firstChild.data.isEmpty();

      var objekt = response.getElementsByTagName('level')[j].firstChild;

      Muss das natürlich heissen.

  2. Hallo,

    Wie kann ich den Fall abfangen das folgendes Object keine Eigenschaften hat? Hab schon folgendes probiert:

    response.getElementsByTagName('level')[j].firstChild.data.isEmpty()

    response.getElementsByTagName('level')[j].firstChild.data.exists()

    response.getElementsByTagName('level')[j].firstChild.data=NULL

    response.getElementsByTagName('level')[j].firstChild.data=0

    Wenn kein Kindknoten existiert, liefert firstChild gemäß DOM den Wert null zurück.

    if (response.getElementsByTagName('level')[j].firstChild !== null)
       /* ... Kindknoten exixtiert ... */

    Oder einfach
    if (response.getElementsByTagName('level')[j].firstChild)
       /* ... Kindknoten exixtiert ... */

    Wenn es sich dann um einen Textknoten handelt (nodeType == 3), dann ist auch die Eigenschaft .data gesetzt.

    Allgemein gilt: Abfragen, ob ein Objekt existiert
    In anderen Fällen nimmt man if (typeof(objekt) != "undefined") /* Objekt existiert */.

    Mathias

    1. Hi

      if (response.getElementsByTagName('level')[j].firstChild !== null)
         /* ... Kindknoten exixtiert ... */

      Oder einfach
      if (response.getElementsByTagName('level')[j].firstChild)
         /* ... Kindknoten exixtiert ... *
      Allgemein gilt: Abfragen, ob ein Objekt existiert
      In anderen Fällen nimmt man if (typeof(objekt) != "undefined") /* Objekt existiert */.

      Danke fuer deine Antwort aber leider haut das nicht ganz hin! Habe folgendes probiert:

      while(typeof(response.getElementsByTagName('level')[j].firstChild)!= 'undefined')

      while(typeof(response.getElementsByTagName('level')[j].firstChild)!= "undefined" )

      while(response.getElementsByTagName('level')[j].firstChild)!= null)

      while(!response.getElementsByTagName('level')[j].firstChild))

      Immer krieg ich von der Console die Fehlermeldung dass das Objekt keine proberties hat sobald j=3.

      Irgendwelche Ideen?

      Gruss
      Philipp

      1. Danke fuer deine Antwort aber leider haut das nicht ganz hin! Habe folgendes probiert:

        while(typeof(response.getElementsByTagName('level')[j].firstChild)!= 'undefined')

        while(typeof(response.getElementsByTagName('level')[j].firstChild)!= "undefined" )

        while(response.getElementsByTagName('level')[j].firstChild)!= null)

        while(!response.getElementsByTagName('level')[j].firstChild))

        Immer krieg ich von der Console die Fehlermeldung dass das Objekt keine proberties hat sobald j=3.

        Wenn das 4. Objekt nicht existiert, dann hat das auch kein firstChild, du musst auf die existenz von
        response.getElementsByTagName('level')
        und response.getElementsByTagName('level')[j]
        prüfen. Dann kannst du erst fistChild überprüfen.

        Struppi.