newdarkness: Feststellen ob ein Wert gesetzt wurde

Hallo, wie kann man feststellen ob ein wert fuer ein Element festgelegt wurde?

z.B.:

<table id="Tabelle" width="100">

wenn man automatisch die breite und hoehe abfragen wollte haette man direkt einen fehtler, wie liesse sich das verhindern?

Schon mal Danke

  1. Hallo,

    <table id="Tabelle" width="100">

    dazu reicht es aus ganz simpel mit if([Objekt].[Eigenschft]) abzufragen. An das Objekt kommst Du mit getElementById() http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id, http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_name und
    http://de.selfhtml.org/javascript/objekte/document.htm#get_elements_by_tag_name mal ansehen.

    Gruß aus Berlin!
    eddi

    --
    at, wie er leibt und lebt auf ein Posting
    > > Nein, ich denke nicht.
    gepromptet
    > Das empfiehlt sich aber.
    :))))
    1. Ja, das weiss ich scho aber da entsteht der fehler ja in dem fall das das attribut noch nicht gesetzt seien sollte?

      1. Re:

        Ja, das weiss ich scho aber da entsteht der fehler ja in dem fall das das attribut noch nicht gesetzt seien sollte?

        So jetzt werde bitte mal konkret! Welchen Fehler hast Du erhalten?
        Ich habe mein Beispiel grade am IE 5.0, Mozilla 1.6 und Opera 7.54 durchgespielt. Alle arbeiten den Steuerfluß korrekt ab.
        In diesem Zusammenhang ist es hilfreich, um Dir weiterhelfen zu können, daß Du Deinen Quellcode offenbarst und uns nicht weiter im Dunklen rumtappen läßt!

        Gruß aus Berlin!
        eddi

        --
        at, wie er leibt und lebt auf ein Posting
        > > Nein, ich denke nicht.
        gepromptet
        > Das empfiehlt sich aber.
        :))))
        1. Re:

          Ja, das weiss ich scho aber da entsteht der fehler ja in dem fall das das attribut noch nicht gesetzt seien sollte?

          So jetzt werde bitte mal konkret! Welchen Fehler hast Du erhalten?
          Ich habe mein Beispiel grade am IE 5.0, Mozilla 1.6 und Opera 7.54 durchgespielt. Alle arbeiten den Steuerfluß korrekt ab.
          In diesem Zusammenhang ist es hilfreich, um Dir weiterhelfen zu können, daß Du Deinen Quellcode offenbarst und uns nicht weiter im Dunklen rumtappen läßt!

          Gruß aus Berlin!
          eddi

          Also Gut:

          <!--
          function ApplyResulution()
          {

          var NormalResulutionWidth = 1024;
          var NormalResulutionHeight = 768;

          //Table//
           for(i=0;i<document.getElementsByTagName('TABLE').length;i++)
           {
           document.getElementsByTagName('TABLE')[i].width=document.getElementsByTagName('TABLE')[i].width / NormalResulutionWidth * screen.width;
           document.getElementsByTagName('TABLE')[i].height=document.getElementsByTagName('TABLE')[i].height / NormalResulutionHeight * screen.height;
           }

          }
          //--!>

          Es ist gemacht um tabllen bei verschedener aufloesung in gleiecher reeller aufloesung zu zeigen

          1. So klappts aber jetzt doch

            <!--
            function ApplyResulution()
            {

            var NormalResulutionWidth = 1024;
            var NormalResulutionHeight = 768;

            //Table//
             for(i=0;i<document.getElementsByTagName('TABLE').length;i++)
             {

            var attr,testid,isattr=false;
             attr="width";
             isattr=document.getElementsByTagName('TABLE')[i].getAttribute(attr);
             if(!!isattr)document.getElementsByTagName('TABLE')[i].width=document.getElementsByTagName('TABLE')[i].width / NormalResulutionWidth * screen.width;

            var attr,testid,isattr=false;
             attr="height";
             isattr=document.getElementsByTagName('TABLE')[i].getAttribute(attr);
             if(!!isattr)document.getElementsByTagName('TABLE')[i].height=document.getElementsByTagName('TABLE')[i].height / NormalResulutionHeight * screen.height;
             }

            }
            //--!>

            1. Hallo,

              führe bitte volgendes in verschiedenen Browsern aus und vergleiche, welche Attribute in allen Browser vorkommen ;)

              function apply()
                 {
                 for(i=0;document.getElementsByTagName('TABLE')[i];i++)
                    {

              for(v in document.getElementsByTagName('TABLE')[i])
                       {
                x=document.createTextNode(i+ " " + v)
                y=document.createElement("div")
                y.appendChild(x)
                document.getElementsByTagName("body")[0].appendChild(y)
                }
                    }
                 }

              Gruß aus Berlin!
              eddi

              --
              at, wie er leibt und lebt auf ein Posting
              > > Nein, ich denke nicht.
              gepromptet
              > Das empfiehlt sich aber.
              :))))
  2. Hallo,

    <table id="Tabelle" width="100">

    wenn man automatisch die breite und hoehe abfragen wollte haette man direkt einen fehtler, wie liesse sich das verhindern?

    Probiere es so:

    var attr,testid,isattr=false;
    testid="Tabelle";
    attr="height";
    isattr=document.getElementById(testid).getAttribute(attr);
    if(!!isattr)alert("Attribut "+attr+" existiert fuer Element mit ID "+testid+".");
    else alert("Attribut "+attr+" existiert fuer Element mit ID "+testid+" nicht.");

    Die doppelte Verneinung !!isattr ist angebracht, da Mozilla-Derivate bei Nichtexistenz des gesuchten Attributs null, der IE und Opera (zumindest 7.x) aber einen Leerstring ausgeben.

    MfG, Thomas

    1. [Nachtrag:]

      isattr=document.getElementById(testid).getAttribute(attr);
      if(!!isattr)...

      Praktikabler waere noch:

      isattr=!!document.getElementById(testid).getAttribute(attr);
      if(isattr)...

      MfG, Thomas

    2. Hallo,

      Die doppelte Verneinung !!isattr ist angebracht, da Mozilla-Derivate bei Nichtexistenz des gesuchten Attributs null, der IE und Opera (zumindest 7.x) aber einen Leerstring ausgeben.

      Das verstehe ich nicht. Einmal ist isattr ein leeres String-Objekt. Einmal ist isattr null. Bei if (isattr) ... werden beide in Boolean umgewandelt. In beiden Fällen kommt in den besagten Browsern false heraus. Dabei wird auch nichts anderes als Boolean(isattr) ausgeführt. if (isattr) ... sollte also reichen.

      Mathias

      1. Hallo,

        if (isattr) ... sollte also reichen.

        !false

        ;-)

        MfG, Thomas