Heim >Web-Frontend >HTML-Tutorial >Der Unterschied zwischen den ID- und Namensattributen der HTML-Elemente_HTML/Xhtml_Webseitenproduktion

Der Unterschied zwischen den ID- und Namensattributen der HTML-Elemente_HTML/Xhtml_Webseitenproduktion

WBOY
WBOYOriginal
2016-05-16 16:42:251433Durchsuche

Heute bin ich etwas verwirrt über . Das Hinzufügen von # bedeutet einen Anker, gefolgt von 13, es wird zur 13. Position dieser Seite gesprungen, und diese 13 ist der Namensattribut. Warum ist
kein ID-Wert? ? ? Also habe ich den Unterschied zwischen ID und Name überprüft und

die klassischste Antwort notiert: ID ist wie die ID-Nummer einer Person und Name ist wie sein Name. Die ID ist offensichtlich eindeutig und der Name kann wiederholt werden.
Offensichtlich ist die Antwort auf ID und Name zu allgemein. Natürlich ist diese Erklärung für ID, also die Identität des HTML-Elements auf der Clientseite, völlig richtig. Der Name ist tatsächlich viel komplizierter, da der Name viele Verwendungszwecke hat und daher nicht vollständig durch die ID ersetzt werden kann, wodurch er aufgehoben wird. Spezifische Verwendungszwecke sind:
Verwendung 1: Als serverseitiger Indikator für HTML-Elemente, die mit dem Server interagieren können, z. B. Eingabe, Auswahl, Textbereich und Schaltfläche. Wir können den vom Element über Request.Params übermittelten Wert basierend auf seinem Namen auf der Serverseite abrufen.
Verwenden Sie 2: HTML-Element Eingabetyp = 'Radio'-Gruppierung. Wir wissen, dass sich das Optionsfeldsteuerelement in derselben Gruppierungsklasse befindet. Die Prüfoperation ist Mutex. Es kann nur ein Radio gleichzeitig ausgewählt werden. Diese Gruppierung ist basierend auf dem gleichen Namensattribut realisiert.
Zweck 3: Erstellen Sie einen Ankerpunkt auf der Seite. Wir wissen, dass link einen Seiten-Hyperlink erhält Stattdessen, wie zum Beispiel: < ;a name="PageBottom">, erhalten wir einen Seitenanker.
Verwendung 4: Identität als Objekt, z. B. Applet, Objekt, Einbettung und andere Elemente. In einer Applet-Objektinstanz verwenden wir beispielsweise deren Namen, um auf das Objekt zu verweisen.
Zweck 5: Wenn Sie beim Zuordnen zwischen IMG-Elementen und MAP-Elementen den Hotspot-Bereich von IMG definieren möchten, müssen Sie dessen Attribut usemap verwenden, also usemap="#name" (Name des zugeordneten MAP
Element).
Verwendung 6: Attribute bestimmter spezifischer Elemente, wie z. B. Attribut, Meta und Parameter. Definieren Sie beispielsweise die Parameter für Object oder
Natürlich können diese Verwendungen nicht einfach durch ID ersetzt werden, daher ist der Unterschied zwischen ID und Name von HTML-Elementen nicht der Unterschied zwischen ID-Nummer und Name. Sie haben unterschiedliche Funktionen
.
Wir können die subtilen Unterschiede durch einen Codeabschnitt analysieren:

Kopieren Sie den Code
Der Code lautet wie folgt :



Wie viele Methoden können wir im IE-Browser verwenden, um dieses Textfeldobjekt zu indizieren? (Zur Unterscheidung setzen wir NAME und ID auf unterschiedliche Werte)
1. demoform.oDemo
3 .oDemo
5. document.forms['demoform'].oDemo
7. document.forms['demoform'].childNodes[0]
8. document.forms['demoform'].elements[0]
9. document.getElementById('oDemo2')

Die oben genannten 9 Indizierungsmethoden haben jedoch alle den Rückgabewerttest bestanden Es lohnt sich, das Letzte zu beachten: In IE6 habe ich das Indexobjekt als document.getElementById('oDemo') geschrieben, und der Browser kann das Objekt korrekt indizieren. Es ist wirklich schreckliche Fehlertoleranz! !
Dann kommt das Problem. Wir fügen diesen Code in Mozilla Firefox 1.0 ein und führen ihn erneut aus. Die anderen Methoden können das Objekt jedoch korrekt indizieren -spezifisches Objekt document.all wird verwendet. Obwohl FF1.0 den korrekten Wert zurückgibt, wird in der Konsole eine Warnung ausgegeben: Warnung: Nicht standardmäßiges Attribut document.all. Bitte verwenden Sie die W3C-Standardform von document.getElementById()
.
Als nächstes definieren wir den HTML-Texttyp strenger und fügen am Anfang des Quellcodes hinzu: bewirkt, dass der HTML-Text gemäß dem HTML4.01-Standard analysiert wird. Im IE6 bestehen alle den Rückgabewerttest. In Mozilla Firefox 1.0 besteht das Problem jedoch ist groß. Die erste Methode hat keinen Rückgabewert, aber in der Konsole wird eine Fehlermeldung ausgegeben: Fehler: document.all hat keine Eigenschaften, und die siebte Methode gibt immer noch „undefiniert“ zurück.
Zusammenfassung
NAME wird hauptsächlich in interaktiven Webseiten verwendet. Nachdem das Formular an ein serverseitiges Skript gesendet wurde, erhält es ein variables Verarbeitungsvolumen. Aus Sicht der Quellcode-Standardisierung und -Kompatibilität wird empfohlen,
document.getElementById() zu verwenden, wenn Sie ein Objekt in einem Client-Skript indizieren möchten.
Ein weiteres einfaches Beispiel:

Benutzername: ;

Wenn ich den Benutzernamen und das Passwort erhalten möchte, muss es als document.form1.username.value geschrieben werden .password.value ;
Verwenden Sie die ID, um Folgendes abzurufen:
docuement.getElementById("username");
document.getElementById("pwd");
Manchmal kann der Name identisch sein Dieses Mal verwenden wir Sobald der Name erhalten ist, ist es unmöglich zu bestimmen, welcher Wert erhalten wird.
document.getElemntsByName("username");
Was Sie hier erhalten, ist ein Array
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn