Maison > interface Web > tutoriel HTML > le corps du texte

Explication détaillée de la différence entre ID et NAME en HTML

高洛峰
Libérer: 2017-03-12 18:04:15
original
1463 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 obtenir la valeur. 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, qui est 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 Type d'entrée = regroupement 'radio', nous savons que le bouton radio contrôle est dans la même classe de regroupement, l'opération de vérification est mutex, une seule radio peut être sélectionnée à la fois temps, ce regroupement 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 : Bottom">, 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'identifiant dans la page, car dans l'arborescence des objets DHTML, on peut utiliser document.getElementsByName pour obtenir un liste contenant tous les éléments de la page. Un tableau d'objets spécifiant l'élément Name. 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.

Le résultat affiché dans la boîte de message est : .

Le résultat affiché dans la boîte de message est : .

La conception de l'initialisation de l'attribut Name n'est pas un défaut d'IE, car MSDN dit que cela devrait être fait de cette façon, mais quel est le principe de cette conception ? Je n'ai pas encore réfléchi très clairement.

Au fait, que se passe-t-il s'il y a n (n>1) éléments HTML dans la page avec le même ID ? Comment les référencer dans des objets DHTML ? Si nous utilisons des pages ASPX, une telle situation n'est pas facile, car le processus aspnet n'autorise pas les identifiants non uniques lors du traitement des pages aspx. Cela signifie que la page lèvera une exception et ne pourra pas être rendue normalement. S'il ne s'agit pas d'une page dynamique et que nous insistons pour répéter l'ID, que devons-nous faire avec IE ? Pour le moment, nous pouvons toujours utiliser document.getElementById pour obtenir des objets, mais nous ne pouvons obtenir que le premier objet qui apparaît lors du rendu HTML parmi les objets avec des ID en double. À ce stade, l'ID répété deviendra automatiquement un tableau une fois référencé, et les éléments avec des ID répétés existeront dans le tableau dans l'ordre de rendu.


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