daniel_909: getElementsByName Problem

Hallo, ich habe folgendes kuriose Problem ..

dies ist die Funktion, welche ich "geschrieben" habe und sie funktioniert NUR, wenn ich das anzuzeigende div mit einer ID="5" versehe. schreibe ich name="5", wie es bei getelementsbyname eigentlich nahe liegt, passiert nichts.

Woran liegt das und warum funktioniert das überhaupt? Es wäre super, wenn mir das einer sagen könnte :o)!

<html><head><script language="JavaScript">
function my_view(my_name){

document.getElementsByName(my_name)[0].style.display="block";

}
</script></head><body bgcolor="#FFFFFF" text="#000000">

<div><a href="javascript:my_view(5);">test</a></div>
<div id="5" style="display:none">hallo welt</div>
</body></html>

Danke, Daniel

  1. Hi,

    dies ist die Funktion, welche ich "geschrieben" habe und sie funktioniert NUR, wenn ich das anzuzeigende div mit einer ID="5" versehe. schreibe ich name="5", wie es bei getelementsbyname eigentlich nahe liegt, passiert nichts.

    div hat kein name-Attribut.
    5 ist kein sinnvoller Wert für eine id, id-Werte müssen mit einem Buchstaben beginnen.

    Woran liegt das und warum funktioniert das überhaupt? Es wäre super, wenn mir das einer sagen könnte :o)!

    Welcher Browser?

    Sinnvoll wäre, eine gültige id und getElementById zu verwenden.

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    Schreinerei Waechter
    O o ostern ...
    Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
  2. Hallo daniel_909.

    dies ist die Funktion, welche ich "geschrieben" habe und sie funktioniert NUR, wenn ich das anzuzeigende div mit einer ID="5" versehe. schreibe ich name="5", wie es bei getelementsbyname eigentlich nahe liegt, passiert nichts.

    Eine http://de.selfhtml.org/html/referenz/attribute.htm#id_idref_name@title=ID darf nicht mit einer Zahl beginnen, sie ist daher ungültig.

    Woran liegt das und warum funktioniert das überhaupt?

    Weil Opera und der IE zu gnädig sind. Wenn du das Beispiel im Firefox testest, wirst du sehen, dass es nicht funktioniert:

    Fehler: document.getElementsByName(my_name)[0] has no properties
    Quelldatei: file://…
    Zeile: 4
     ----------
    Warnung: reference to undefined property document.getElementsByName(my_name)[0]
    Quelldatei: file://…
    Zeile: 4

    Es wäre super, wenn mir das einer sagen könnte :o)!

    […]
    <div id="5" style="display:none">hallo welt</div>

    Das http://de.selfhtml.org/html/referenz/attribute.htm#div@title=div–Element verfügt über kein name–Attribut, weshalb es dementsprechend auch nicht per getElementsByName ansprechbar sein darf. Du möchtest sicher http://de.selfhtml.org/javascript/objekte/document.htm#get_element_by_id@title=getElementById verwenden.

    Einen schönen Donnerstag noch.

    Gruß, Mathias

    --
    sh:( fo:} ch:? rl:( br: n4:~ ie:{ mo:| va:) de:> zu:} fl:( ss:) ls:[ js:|
    „It is required that HTML be a common language between all platforms. This implies no device-specific markup, or anything which requires control over fonts or colors, for example. This is in keeping with the SGML ideal.“
    [HTML Design Constraints: Logical Markup]
  3. *lach* ... na mehr konnte ich ja gar nicht falsch machen ;o)!

    Danke Euch!

    So ist das halt wenn man JavaScript nur mal gelegentlich für optische Ergänzungen nutzt und sich nicht wirklich ernsthaft damit beschäftigt.
    Na da werde ich die Gelegenheit gleich mal nutzen und mir den Firefox auch auf den Laptop packen und mir ein paar mehr Grundlagen für JavaScript aneignen!

    Schönen Tag noch, Daniel

    1. Hello out there!

      […] und mir ein paar mehr Grundlagen für JavaScript aneignen!

      Dann kannst du gleich mit dem richtigen Einbinden von JavaScript-Bereichen in HTML anfangen.

      <script language="JavaScript">

      So nicht.

      See ya up the road,
      Gunnar

      --
      “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)