Maison > interface Web > tutoriel HTML > Introduction détaillée à la différence entre les attributs ID et Name des éléments HTML

Introduction détaillée à la différence entre les attributs ID et Name des éléments HTML

高洛峰
Libérer: 2017-03-20 16:53:34
original
1520 Les gens l'ont consulté

On peut dire que presque tous ceux qui ont fait du développement Web se sont demandé quelle est la différence entre l'ID et le nom d'un élément ? Pourquoi avons-nous besoin de Name quand nous avons ID ?! Et nous pouvons également obtenir la réponse la plus classique : ID est comme le numéro d'identification d'une personne, et Name est comme si son nom est évidemment unique, et Name est répétable.

La semaine dernière, j'ai également rencontré le problème de l'ID et du nom. J'ai entré un type d'entrée="hidden" sur la page et j'ai seulement écrit un ID='SliceInfo'. Après avoir attribué la valeur, soumettre et utiliser la requête dans. l'arrière-plan Params["SliceInfo"] ne peut pas atteindre la valeur Introduction détaillée à la différence entre les attributs ID et Name des éléments HTML. Plus tard, j'ai soudainement réalisé qu'il devait être marqué avec Name, j'ai donc ajouté Name='SliceInfo' à l'entrée, et tout allait bien.

La réponse à ID et Nom dans le premier paragraphe est trop générale. Bien sûr, cette explication est tout à fait correcte pour ID. Il s'agit de l'identité de l'élément HTML côté client. Name est en réalité beaucoup plus compliqué, car Name a de nombreuses utilisations, il ne peut donc pas être complètement remplacé par ID, ce qui l'annule. Les utilisations spécifiques sont :

Objectif 1 : En tant qu'indicateur côté serveur des éléments HTML qui peuvent interagir avec le serveur, tels que la saisie, la sélection, la zone de texte et le bouton. Nous pouvons obtenir la valeur soumise par l'élément via Request.Params en fonction de son nom côté serveur.
Utilisation 2 : élément HTML Input type='radio'Group, on sait que le contrôle du bouton radio est dans la même classe de groupe, l'opération de vérification est mutex, une seule radio peut être sélectionnée à la fois en même temps, ce groupe est Il est implémenté sur la base du même attribut Name.
Objectif 3 : Créer l'ancre dans la page. Nous savons que link utilisé, modifiez Using Name, tel que : , nous obtenons une ancre de page.
Objectif 4 : En tant qu'identité de Objet, tel que l'applet, l'Objet, l'intégration et d'autres éléments. Par exemple, dans une instance d’objet Applet, nous utiliserons son nom pour faire référence à l’objet.
Objectif 5 : Lors de l'association entre l'élément IMG et l'élément MAP, si vous souhaitez définir la zone de point chaud de l'IMG, vous devez utiliser son attribut usemap, donc usemap="# name" (nom MAP associé de l'élément).
Objectif 6 : Attributs de certains éléments spécifiques, tels que l'attribut, la méta et le param. Par exemple, définissez les paramètres pour Object ou

Évidemment, ces utilisations ne peuvent pas être simplement remplacées par ID, donc la différence entre ID et Nom des éléments HTML n'est pas la différence entre le numéro d'ID et le nom. Ils ont des fonctions différentes.

Bien entendu, l'attribut Name de l'élément HTML peut également jouer un rôle d'ID dans la page, car dans l'arborescence des objets DHTML, nous pouvons utiliser document.getElementsByName pour obtenir un tableau d'objets contenant tous les Name spécifiés. éléments dans la page. Il y a un autre problème avec l'attribut Name. Lorsque nous créons dynamiquement un élément pouvant contenir l'attribut Name, nous ne pouvons pas simplement utiliser l'affectation element.name = "..." pour ajouter son Name. Nous devons utiliser document.createElement( when. la création de l'élément. '') ajoute l'attribut Name à l'élément. Qu'est-ce que cela signifie? Il suffit de regarder l'exemple ci-dessous pour comprendre.

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

Le résultat affiché dans la zone de message est : .

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

    消息框里显示的结果是:
    初始化Name属性的这个设计不是IE的缺陷,因为MSDN里说了要这么做的,可是这样设计的原理什么呢?我暂时没有想太明白Introduction détaillée à la différence entre les attributs ID et Name des éléments HTML

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal