Sven: getElemtentsByName auf vorhanden checken?

Hallo,

ich will eine Reihe von DIVs ansprechen, die über den Namen definiert sind. Nun bricht das Javascript aber mit einem Error ab, wenn ich ein nicht vorhandenes Element mit getElementsByName abfrage. Daher meine Frage: kann ich ohne Error checken, ob das Element vorhanden ist, damit das Script nicht abbricht?

Danke
Sven

  1. Hi,

    abbrechen sollte es aber erst, wenn du versuchst etwas damit anzustellen, frei nach dem Motto
    if (document.getElementsByName("abc") != null)
       // hier kann man zugreifen
    else
       // nicht da
    Aufpassen musst du insofern, dass der Name u.U. nicht eindeutig ist und damit nicht ein einzelnes Element sondern ein Array zurückkommt.

    MfG
    Rouven

    --
    -------------------
    ss:) zu:) ls:& fo:) de:< va:{ ch:? sh:) n4:( rl:? br:$ js:| ie:) fl:(
    1. abbrechen sollte es aber erst, wenn du versuchst etwas damit anzustellen, frei nach dem Motto
      if (document.getElementsByName("abc") != null)

      Das ist immer wahr, da die Funktion immer etwas zurückgibt, wenn es kein element gefunden hat ist .length = 0

      Aufpassen musst du insofern, dass der Name u.U. nicht eindeutig ist und damit nicht ein einzelnes Element sondern ein Array zurückkommt.

      Eben und das bekommst du immer zurück. (genau genommen eine HTML Collection)
      Aufpassen muss man hier eher, dass nicht jedes Element ein name Eigenschaft hat.

      Struppi.

  2. hi,

    ich will eine Reihe von DIVs ansprechen, die über den Namen definiert sind.

    Div hat kein name-Attribut.

    Nun bricht das Javascript aber mit einem Error ab, wenn ich ein nicht vorhandenes Element mit getElementsByName abfrage.

    Je nach Browser wirst du damit _gar keine_ Ergebnisse bekommen, weil - siehe oben.

    gruß,
    wahsaga

    --
    /voodoo.css:
    #GeorgeWBush { position:absolute; bottom:-6ft; }
    1. Damn. Wie kann ich denn dann ein DIV austauschen? Nur über die ID? Da ich jedem DIV noch ein Stylesheet zuweisen will, wollte ich die ID für einen Namensgebung nicht verwenden. Jetzt fällt mir nur ein, das DIV in einem weiteren DIV zu schachteln.
      Im Firefox geht DIV mit NAME ja ganz einfach.

      1. Lieber Sven,

        Damn. Wie kann ich denn dann ein DIV austauschen? Nur über die ID?

        das wäre eine logische Schlussfolgerung.

        Da ich jedem DIV noch ein Stylesheet zuweisen will, wollte ich die ID für einen Namensgebung nicht verwenden. Jetzt fällt mir nur ein, das DIV in einem weiteren DIV zu schachteln.

        Was hindert Dich daran, einem DIV zusätzlich noch eine Klasse zuzuweisen?

        Im Firefox geht DIV mit NAME ja ganz einfach.

        "Page optimized for" what I think best?

        Liebe Grüße aus Ellwangen,

        Felix Riesterer.

      2. Hi,

        Jetzt fällt mir nur ein, das DIV in einem weiteren DIV zu schachteln.

        Ggf. verwende ich dafür ein *eigenes* Attribut, dessen Existenz und Inhalt ich Abfrage: <div gid="groupID">

        Mit ...ByTagName("div") kann man dann alle DIVs durchgehen, und mit getAttribute() nachschauen, ob es sich um ein DIV mit dem GID-Attribut und dem dortigen Wert "groupID" handelt.

        Gruß, Cybaer

        --
        Hinweis an Fragesteller: Fremde haben ihre Freizeit geopfert, um Dir zu helfen. Helfe Du auch im Archiv Suchenden: Beende deinen Thread mit einem "Hat geholfen" oder "Hat nicht geholfen"!