javascript Zugriff auf Element mit Attribut "id" ohne getElementById
Gerrit
- javascript
Hallo,
irgendwann habe ich mal eine Site gesehen, bei der ohne getElementById auf HTML-Elemente zugegriffen wurde. BSP:
HTML: <div id="test"></div>
JavaScript: test.onclick = …
Seither verwende ich es ohne Probleme.
Nun meine Frage: sollte / darf man das eigentlich so machen? Bei meiner Internet-Recherche finde ich immer nur den "korrekten" Zugriff mit getElementById…
Beste Grüße
@@Gerrit
irgendwann habe ich mal eine Site gesehen, bei der ohne getElementById auf HTML-Elemente zugegriffen wurde. BSP:
HTML: <div id="test"></div>
JavaScript: test.onclick = …
Der IE hatte vor Urzeiten Elemente mit ID als Eigenschaft des window
-Objekts angelegt. War mir gar nicht bewusst, dass andere Browser das nachmachen. Vielleicht ist das sogar jetzt so spezifiziert?
Seither verwende ich es ohne Probleme.
Du vielleicht; andere nicht.
Nun meine Frage: sollte / darf man das eigentlich so machen?
Nein. Man darf nicht auf click
-Events von nicht-interaktiven Elementen (wie div
) lauschen (bzw. nicht-interaktiven Elemente als target bei event delegation verwenden), wenn die Anwendung allgemein bedienbar sein soll.
Nicht-interaktive Elemente sind nicht in der Tab-Reihenfolge und prinzipiell nicht anclickbar. Sie mögen für einen Teil der Nutzer bedienbar sein, für einen anderen Teil aber unbedienbar. Verwende Buttons!
LLAP 🖖
Hi LLAP,
vielen Dank für den Hinweis auf den Button!
Ich meinte aber in meinem Beispiel eher nur den JavaScript-Teil, also korrigiertes BSP:
HTML: <button id="test"></button>
JavaScript: test.onclick = …
Was hälst Du davon: http://2ality.com/2012/08/ids-are-global.html
Gerrit
Hi there,
vielen Dank für den Hinweis auf den Button!
Ich meinte aber in meinem Beispiel eher nur den JavaScript-Teil, also korrigiertes BSP:
das hat er eh verstanden, aber er muß prinzipiell auf Fragen antworten, die gar nicht gestellt wurden, das geht bei ihm nicht anders…
@@Klawischnigg
aber er muß prinzipiell auf Fragen antworten, die gar nicht gestellt wurden, das geht bei ihm nicht anders…
Das gehört bei guten™ Antworten ja einfach mit dazu.
LLAP 🖖
@@Gerrit
Hi LLAP,
??
korrigiertes BSP:
HTML: <button id="test"></button>
Mit etwas Text sollte der Button aber schon beschriftet sein.
Was hälst Du davon: http://2ality.com/2012/08/ids-are-global.html
Von nicht verlinkten URLs, die man aufrufen soll, halte ich gar nichts. Ich hab das mal korrigiert.
Dort halte ich viel von Rodneys Kommentar: “concluded this JS behavior being the same kind of ‘making things easy’ bullshit that ultimately can lead to only one thing: bad code.”
LLAP 🖖
Hallo,
Was hälst Du davon: http://2ality.com/2012/08/ids-are-global.html
Dort halte ich viel von Rodneys Kommentar: “concluded this JS behavior being the same kind of ‘making things easy’ bullshit that ultimately can lead to only one thing: bad code.”
und Axels Antwort: “I agree, more a bug than a feature.”
Jürgen
Danke für die Hinweise, Korrekturen und Meinungen, lieber Gunnar! Nun schaut mein Kopf wieder in die richtige Richtung… Gruß, Gerrit