Heim >Web-Frontend >HTML-Tutorial >Detaillierte Einführung in den Unterschied zwischen den ID- und Namensattributen von HTML-Elementen

Detaillierte Einführung in den Unterschied zwischen den ID- und Namensattributen von HTML-Elementen

高洛峰
高洛峰Original
2017-03-20 16:53:341502Durchsuche

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 Detaillierte Einführung in den Unterschied zwischen den ID- und Namensattributen von HTML-Elementen nicht erreichen. 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 natürlich zu allgemein. Für ID ist es die Identität des HTML-Elements auf der Client-Seite. 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 Input type='radio'Group, wir wissen, dass sich das Optionsfeld-Steuerelement in derselben Gruppenklasse befindet, die Prüfoperation ist Mutex, es kann nur ein Radio ausgewählt werden Gleichzeitig wird diese Gruppe basierend auf demselben Namen-Attribut implementiert.
Zweck 3: Erstellen Sie den Anker auf der Seite. Wir wissen, dass 91d83b4822db6c9c4aabe5918601cc24link5db79b134e9f6b82c0b36e0489ee08ed einen Seiten-Hyperlink erhält Wenn Sie einen Namen verwenden, ändern Sie ihn. Beispiel: 0540000f1e2e8c1414f3fa2eece38c9e5db79b134e9f6b82c0b36e0489ee08ed. 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 c482d017ac37d0493b1edf90b225c0b5 für Object oder db0f0129396a875c0f18375780d74f03

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 auf der Seite eine Rolle spielen, denn im DHTML-Objektbaum können wir document.getElementsByName verwenden, um ein Objektarray zu erhalten, das alle angegebenen Namen enthält Elemente auf der Seite. 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.

<script language="JavaScript">
var input = document.createElement(&#39;INPUT&#39;);
input.id = &#39;myId&#39;;
input.name = &#39;myName&#39;;
alert(input.outerHTML);
</script>

Das im Meldungsfeld angezeigte Ergebnis lautet: 7c4910ae3e1ff2731c00ced15cbfeb3c.

<script language="JavaScript">
var input = document.createElement(&#39;<INPUT name="myName">&#39;);
input.id = &#39;myId&#39;;
alert(input.outerHTML);
</script>

    消息框里显示的结果是:fcd57d8d6086a1073f231e2d47bdc82a。
    初始化Name属性的这个设计不是IE的缺陷,因为MSDN里说了要这么做的,可是这样设计的原理什么呢?我暂时没有想太明白Detaillierte Einführung in den Unterschied zwischen den ID- und Namensattributen von HTML-Elementen

    这里再顺便说一下,要是页面中有n(n>1)个HTML元素的ID都相同了怎么办?在DHTML对象中怎么引用他们呢?如果我们使用ASPX页面,这样的情况是不容易发生的,因为aspnet进程在处理aspx页面时根本就不允许有ID非唯一,这是页面会被抛出异常而不能被正常的render。要是不是动态页面,我们硬要让ID重复那IE怎么搞呢?这个时候我们还是可以继续使用document.getElementById获取对象,只不过我们只能获取ID重复的那些对象中在HTML Render时第一个出现的对象。而这时重复的ID会在引用时自动变成一个数组,ID重复的元素按Render的顺序依次存在于数组中。

Das obige ist der detaillierte Inhalt vonDetaillierte Einführung in den Unterschied zwischen den ID- und Namensattributen von HTML-Elementen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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