Man kann sagen, dass fast jeder, der sich mit Webentwicklung beschäftigt hat, gefragt hat: Was ist der Unterschied zwischen der ID und dem Namen eines Elements? Warum brauchen wir einen Namen, wenn wir einen Ausweis haben? Und wir können auch die klassischste Antwort bekommen: Der Ausweis ist wie die Ausweisnummer einer Person, und der Name ist so, als wäre sein Name eindeutig, und der Name ist wiederholbar.
Letzte Woche bin ich auch auf das Problem von ID und Name gestoßen. Ich habe einen Eingabetyp = „versteckt“ auf der Seite eingegeben und nur eine ID = „SliceInfo“ geschrieben. Nachdem ich den Wert zugewiesen habe, sende und verwende ich „Anfrage“. Der Hintergrund. Params["SliceInfo"] kann den Wert nicht abrufen. Später wurde mir plötzlich klar, dass es mit Name markiert werden sollte, also fügte ich Name='SliceInfo' zur Eingabe hinzu und alles war in Ordnung.
Die Antwort auf „ID“ und „Name“ im ersten Absatz ist zu allgemein. Natürlich ist diese Erklärung für die ID völlig korrekt, die die Identität des HTML-Elements auf der Client-Seite ist. 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:
Zweck 1: Als serverseitiger Indikator für HTML-Elemente, die mit dem Server interagieren können, wie 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 Radio-Button--Steuerelement in derselben Gruppierungsklasse befindet. Die Prüfoperation ist Mutex. Es kann nur ein Radio gleichzeitig ausgewählt werden Gleichzeitig wird diese Gruppierung auf der Grundlage desselben Namens-Attributs implementiert.
Zweck 3: Erstellen Sie den Anker auf der Seite. Wir wissen, dass link einen Seiten-Hyperlink erhält Wenn Sie einen Namen verwenden, ändern Sie ihn. Beispiel: Bottom">. Wir erhalten einen Seitenanker.
Zweck 4: Als Identität von Objekt, wie Applet, Objekt, Embed und anderen Elementen. In einer Applet-Objektinstanz verwenden wir beispielsweise deren Namen, um auf das Objekt zu verweisen.
Zweck 5: Wenn Sie beim Zuordnen zwischen dem IMG-Element und dem MAP-Element den Hotspot-Bereich des IMG definieren möchten, müssen Sie dessen Attribut usemap verwenden, also usemap="# name“ (zugehöriger MAP-Name des Elements).
Zweck 6: Attribute bestimmter spezifischer Elemente, wie z. B. Attribut, Meta und Parameter. Definieren Sie beispielsweise die Parameter für Object oder
Offensichtlich 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.
Natürlich kann das Name-Attribut des HTML-Elements auch als ID in der Seite eine Rolle spielen, denn im DHTML-Objektbaum können wir document.getElementsByName verwenden, um eine zu erhalten Liste mit allen Elementen auf der Seite. Ein Array von Objekten, die das Name-Element angeben. Es gibt ein weiteres Problem mit dem Namensattribut. Wenn wir ein Element dynamisch erstellen, das das Namensattribut enthalten kann, können wir nicht einfach die Zuweisung element.name = „…“ verwenden, um seinen Namen hinzuzufügen. Wir müssen document.createElement( verwenden Beim Erstellen des Elements wird das Attribut „Name“ zum Element hinzugefügt. Was bedeutet das? Schauen Sie sich einfach das Beispiel unten an, um es zu verstehen.
Das im Meldungsfeld angezeigte Ergebnis ist: .
Das im Meldungsfeld angezeigte Ergebnis ist: .
Der Entwurf zur Initialisierung des Namensattributs ist kein Fehler des IE, da MSDN angibt, dass dies auf diese Weise erfolgen sollte. Aber was ist das Prinzip dieses Entwurfs? Ich habe noch nicht allzu klar gedacht.
Was passiert übrigens, wenn die Seite n (n>1) HTML-Elemente mit derselben ID enthält? Wie kann man sie in DHTML-Objekten referenzieren? Wenn wir ASPX-Seiten verwenden, ist eine solche Situation nicht einfach, da der Aspnet-Prozess bei der Verarbeitung von ASPX-Seiten keine nicht eindeutigen IDs zulässt. Dies bedeutet, dass die Seite eine Ausnahme auslöst und nicht normal gerendert werden kann. Wenn es sich nicht um eine dynamische Seite handelt und wir darauf bestehen, die ID zu wiederholen, was sollen wir dann mit dem IE tun? Zu diesem Zeitpunkt können wir immer noch document.getElementById verwenden, um Objekte abzurufen, aber wir können unter den Objekten mit doppelten IDs nur das erste Objekt abrufen, das während des HTML-Renderns angezeigt wird. Zu diesem Zeitpunkt wird die wiederholte ID automatisch zu einem Array, wenn darauf verwiesen wird, und die Elemente mit wiederholten IDs sind in der Reihenfolge des Renderns im Array vorhanden.
Das obige ist der detaillierte Inhalt vonDetaillierte Erklärung des Unterschieds zwischen ID und NAME in HTML. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!