Syntax Äquivalent ?

WiZdooM

Erfahrenes Mitglied
Syntax äquivalent ?

Hallo

HTML:
<form name="service" id="service">
...
<div id="Motor" style="visibility:visible">Motor<input name="checkbox1" id="checkbox1" type="checkbox" />
...
</form>

Eigentlich müsste doch folgende Syntax äquivalent sein, oder nicht ? Wenn nicht: warum ist sie nicht äquivalent, was ist der Unterschied ?

Javascript:
document.getElementById("Motor").style.visibility ="hidden";
document.service.Motor.style.visibility = "hidden";
Motor.style.visibility="hidden";

Und warum funktioniert es bei value und type aber nicht bei style ?
Javascript:
document.service.Checkbox1.value="Motor"; //bzw
document.service.Checkbox1.type="hidden";
 
Zuletzt bearbeitet:
Sorry hab da einige "Fehler" oben dringehabt -> korriert!

Nein, das sind nicht meine Hausaufgaben. Hausaufgaben hab ich vor 10 Jahren das letzte mal gemacht :mad:

Und natürlich is div kein formular element oder hat ein layout element ein value ?
 
Meine Frage war eher ob der oben angegebene (und mittlerweile korrigierte) Code äquivalent war und nicht ob ein div ein Formular oder Layout-Element ist, da bei mir über die Notation
Javascript:
document.service.

alle Elemente aufgelistet werden, die ein ID-Tag besitzen.
Weiterhin stellt sich die Frage ob alle aufgelisteten Attribute auch gültig sind oder ob hier die WYSIWYG-Editoren u.U. ungültige Attribute für Elemente anzeigen...
 
Zuletzt bearbeitet von einem Moderator:
Hi,

da bei mir über die Notation
Javascript:
document.service.

alle Elemente aufgelistet werden, die ein ID-Tag besitzen.

Nein, das liefert Dir das Formularobjekt mit dem Namen "service". Über dieses kannst Du auf seine (Formular-)Elemente zugreifen. Mit dem ID-Attribut hat das herzlich wenig zu tun.

Weiterhin stellt sich die Frage ob alle aufgelisteten Attribute auch gültig sind oder ob hier die WYSIWYG-Editoren u.U. ungültige Attribute für Elemente anzeigen...

Welche aufgelisteten Attribute? Und was meinst Du mit gültig? WYSIWYG-Editoren benutze ich nicht und würde mich, wenn doch, nicht auf sie verlassen.

LG
 
Zuletzt bearbeitet von einem Moderator:
Hi,

an deinen drei Code-Zeilen ist in meinen Augen nur dieser Teil äquivalent:

Javascript:
style.visibility ="hidden";

Alles andere davor sind drei unterschiedliche Methoden, um im Dokumentbaum einen bestimmten Objekttyp anzusprechen.

mfg Maik
 
Was "document.service" wirklich sein wird, hängt vom Dokumentinhalt ab.

das JS-Objekt hat eine Reihe von Unterobjekten, wie bspw. forms, images, embeds


Wenn ein Element, welches diesen Untergruppen zugehörig ist, das name-Attribut "service" hat, ist es document.service

Existieren mehrere Elemente dieser Gruppen mit demselben Namen, wird document.service ein Array mit allen diesen Elementen sein.

Dies ist ein Grund, warum man generell die JS-Syntax zum ansprechen von Dokument-Elementen vermeiden sollte, weil sie zu ungenau ist.

document.[objektname] kann ein Element-Objekt sein, oder aber auch ein Array mit Element-Objekten...das ist keine Basis für genaues Arbeiten in dynamischen Anwendungen.

Zuverlässiges Arbeiten garantieren die DOM-Methoden
getElementById()
getElementsByName()
getElementsByTagName()


Was die gültigen Attribute anbetrifft, dies ist nicht unbedingt ein Problem der Editoren, sondern vielmehr von HTML.
Da HTML-Dokumente auch verarbeitet werden, wenn sie keine DTD besitzen, oder aber eine besitzen und nicht valide sind, gibt es im Endeffekt keine Attribute, welche man nicht setzen könnte.

Anders ist dies bei XML.
Existiert dort eine DTD wird die Verarbeitung des Dokumentes mit einem Parser-Fehler abgebrochen, wenn ein Knoten ein nicht in der DTD vermerktes Attribut besitzt.
 
Zuletzt bearbeitet:
Danke Maik und Sven.

Nun in meinem konkreten Fall ist document.service ein Array mit den Elementen innerhalb des Formtag. Also alle Checkboxen, Textfelder usw.

Dass ein Ansprechen der Elemente über diese kurznotation ungenau ist habe ich bereits gespürt, weshalb die generelle Frage an dieser Stelle aufkam.

Nun aber da das ja sehr fundiert geklärt wurde, kann ich mich wieder mit dem DOM Methoden ins getümmel stürzen. Danke nochmal an alle..
 

Neue Beiträge

Zurück