getElemtentsByName auf vorhanden checken?
Sven
- javascript
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
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
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.
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
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.
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.
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