Heim  >  Artikel  >  Web-Frontend  >  Beispielhafte Einführung und Analyse des Unterschieds zwischen ID- und Namensattributen in der Eingabe

Beispielhafte Einführung und Analyse des Unterschieds zwischen ID- und Namensattributen in der Eingabe

高洛峰
高洛峰Original
2017-03-06 16:59:291350Durchsuche

Ich habe den Unterschied zwischen Name und ID in der Eingabe immer noch nicht herausgefunden. Beim Lernen bin ich auf dieses Problem gestoßen. Ich werde die gesammelten Informationen für die zukünftige Verwendung sortieren. Ich habe schon lange eine Website erstellt, aber ich habe den Unterschied zwischen Name und ID in der Eingabe immer noch nicht herausgefunden. Ich habe kürzlich jquery gelernt und bin erneut auf dieses Problem gestoßen, also habe ich Informationen online gesammelt. Nachdem ich diesen Artikel gelesen hatte, habe ich ihn für die spätere Verwendung sortiert.

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 auf der Seite einen Eingabetyp = „versteckt“ eingegeben und nur eine ID = „SliceInfo“ geschrieben 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 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 91d83b4822db6c9c4aabe5918601cc24link5db79b134e9f6b82c0b36e0489ee08ed einen Seiten-Hyperlink erhält Stattdessen, wie zum Beispiel: < ;a name="PageBottom">5db79b134e9f6b82c0b36e0489ee08ed, 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-Elements). ).
Verwendung 6: Attribute bestimmter spezifischer Elemente, wie z. B. Attribut, Meta und Parameter. Definieren Sie beispielsweise die Parameter c482d017ac37d0493b1edf90b225c0b5 für Object oder db0f0129396a875c0f18375780d74f03

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.

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.

Der Code lautet wie folgt:

<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 ist: 7c4910ae3e1ff2731c00ced15cbfeb3c.

Der Code lautet wie folgt:

< 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里说了要这么做的,可是这样设计的原理什么呢?我暂时没有想太明白。

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

表单元素(form input textarea select)与框架元素(iframe frame)用 name
这些元素都与表单(框架元素作用于form的target)提交有关, 在表单的接收页面只
接收有name的元素, 赋ID的元素通过表单是接收不到值的, 你自己可以验证一下.
有一个例外: A 可以赋 name 作为锚点, 也可以赋ID

当然上述元素也可以赋ID值, 赋ID值的时候引用这些元素的方法就要变一下了.
赋 name: document.formName.inputName document.frames("frameName")
赋 ID : document.getElementById("inputID") document.all.frameID

只能赋ID不能赋name的元素:(除去与表单相关的元素都只能赋ID)
body li table tr td th p p span pre dl dt dd font b 等等

更多input中id和name属性的区别示例介绍分析相关文章请关注PHP中文网!

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