Klaus Liebler: ID / NAME

Kann mir jemand den Unterschied zwischen dem NAME und dem ID - Attribut erklären? In SELFHTML steht bei beiden, dass sie den Namen eines Elementes definieren. Die Frage stelle ich insbesondere in Bezug auf JavaScript und VBScript, mit denen man HTML-Elemente auf der Seite über so definierte Namen ansprechen muss.

Danke für eure Info

Gruß Klaus

  1. hi

    Kann mir jemand den Unterschied zwischen dem NAME und dem ID - Attribut erklären? In SELFHTML steht bei beiden, dass sie den Namen eines Elementes definieren. Die Frage stelle ich insbesondere in Bezug auf JavaScript und VBScript, mit denen man HTML-Elemente auf der Seite über so definierte Namen ansprechen muss.

    name="" hat eigentlich nur im JS1.1-Zusammenhang (Bilder, Formulare) und für Linkanker einen Sinn gehabt. Beides kann heute aber auch über id="" gelöst werden.

    Grüße aus Bleckede

    Kai

    1. Hallo Kai,

      Beides kann heute aber auch über id="" gelöst werden.

      Bist Du dir da auch bei Formularfeldern sicher?
      Ich meine, das ginge (zumindest bis einschließlich XHTML 1.0) noch nicht,
      da eine ID dokumentweit eindeutig sein muß, eine Seite aber IMHO durchaus
      mehrere Formulare enthalten kann, wobei dann schon mal ein Feld in einem
      Formular wie eines im anderen Formular heißen darf...

      Schönen Gruß

      Rainer

      1. hi

        Bist Du dir da auch bei Formularfeldern sicher?

        abgesehen von den schon angesprochenen Radiobuttons, ja. Wie die in XHTML1.1 gelöst sind, weiß ich nicht.

        Grüße aus Bleckede

        Kai

    2. Hi Kai,

      name="" hat eigentlich nur im JS1.1-Zusammenhang (Bilder, Formulare)
      und für Linkanker einen Sinn gehabt. Beides kann heute aber auch über
      id="" gelöst werden.

      hast Du schon mal versucht, mit Netscape 4 einen per "id=" definierten
      Anker anzuspringen? :-(

      Viele Grüße
            Michael

  2. Hallo,

    Kann mir jemand den Unterschied zwischen dem NAME und dem ID - Attribut erklären? In SELFHTML steht bei beiden, dass sie den Namen eines Elementes definieren. Die Frage stelle ich insbesondere in Bezug auf JavaScript und VBScript, mit denen man HTML-Elemente auf der Seite über so definierte Namen ansprechen muss.

    name ist im Grunde veraltet (in XHTML 1.1 kommt es AFAIK nicht mehr vor) und ist nur für ausgewählte Elemente erlaubt.

    id ist für fast alle Elemente erlaubt, auch in neuesten Versionenvon HTML vertreten und soll in den neuesten Versionen auch name ersetzen.

    Andreas

  3. Hallo,

    id ist eindeutig, name nicht. Wichtig ist name z.B. bei Radiobuttons, wo zusammengehörende den gleichen Wert haben, was mit id nicht geht. name aus den input-Feldern wird auch bei submit übertragen, id nicht.

    Ansprechbar über JavaScript sind beide, mit getElementById bzw. getElementByName, ich vermute in VBScript wirds ähnlich sein.

    Manchmal ist es auch ganz nützlich, beide Attribute unterschiedlich zu vergeben.
    Wenns nur zum ansprechen mit JavaScript gedacht und ansonsten egal ist würde ich id empfehlen.

    Viele Grüße,
    Jürgen

    1. Tach,

      Manchmal ist es auch ganz nützlich, beide Attribute unterschiedlich zu vergeben.

      Das ist ausdrücklich nicht erlaubt.
      http://www.w3.org/TR/html4/struct/links.html#anchors-with-id
      Hier heißt es:
      The id and name attributes share the same name space. This means that they cannot both define an anchor with the same name in the same document. It is permissible to use both attributes to specify an element's unique identifier for the following elements: A, APPLET, FORM, FRAME, IFRAME, IMG, and MAP. When both attributes are used on a single element, their values must be identical.

      Andreas

    2. Hi Jürgen,

      id ist eindeutig, name nicht. Wichtig ist name z.B. bei Radiobuttons,
      wo zusammengehörende den gleichen Wert haben, was mit id nicht geht.

      hoppla - heißt das, daß XHTML 1.1 (wo "name" nicht mehr erlaubt ist)
      keine Radiobuttons mehr unterstützt? Das wäre aber häßlich ...

      Viele Grüße
            Michael