Maison > interface Web > tutoriel CSS > Une brève discussion sur la différence entre l'identifiant et le nom dans l'exemple HTML code_Experience Exchange

Une brève discussion sur la différence entre l'identifiant et le nom dans l'exemple HTML code_Experience Exchange

WBOY
Libérer: 2016-05-16 12:05:19
original
1934 Les gens l'ont consulté

Nous pouvons analyser les différences subtiles grâce à un morceau de code :







dans le navigateur IE Combien méthodes pouvons-nous utiliser pour indexer cet objet zone de texte ? (Par souci de distinction, nous définissons NAME et ID sur des valeurs différentes)
1. oDemo
2 demoform.oDemo
3. .oDemo
5. document.forms[0].oDemo
6. document.forms['demoform'].oDemo
7. >8. document.forms['demoform'].elements[0]
9. document.getElementById('oDemo2')

Les 9 méthodes d'indexation ci-dessus ont toutes réussi le test de valeur de retour dans IE6. , il convient de noter le dernier : dans IE6, j'ai écrit l'objet d'index sous la forme

document.getElementById('oDemo'), et le navigateur peut indexer l'objet correctement. C'est une tolérance aux pannes vraiment terrible ! !

Ensuite, le problème survient. Nous mettons ce code dans Mozilla Firefox 1.0 et l'exécutons à nouveau. Seule la 7ème méthode renvoie "undefined", et d'autres méthodes peuvent correctement

indexer l'objet. , étant donné que les troisième et quatrième méthodes utilisent l'objet document.all spécifique à IE, bien que FF1.0 ait renvoyé la valeur correcte, il a émis un avertissement

dans la console : Avertissement : propriétés standard non autorisées document.all. Veuillez utiliser le formulaire standard du W3C document.getElementById() .

Ensuite, nous définissons le type de texte HTML plus strictement et ajoutons au début du code source :



nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">afin que le texte HTML soit analysé en fonction de Selon la norme HTML4.01, dans IE6, tous les tests de valeur de retour réussissent toujours, mais dans Mozilla Firefox 1.0, le problème est grand. Les troisième et quatrième méthodes

n'ont aucune valeur de retour, mais un message d'erreur est affiché. émis dans la console : Erreur : document.all n'a pas de propriétés et la 7ème méthode renvoie toujours "undefined

".

Résumé

name était à l'origine utilisé pour l'identification, mais maintenant, selon la spécification, il est recommandé d'utiliser id pour identifier les éléments.

Seul le nom peut être utilisé dans les cas suivants :
1. Le nom du contrôle du formulaire et les données soumises sont contrôlées par le nom du contrôle au lieu de l'identifiant. Parce qu'il existe de nombreux noms qui correspondent à plusieurs contrôles en même temps, tels que

case à cocher et radio, et l'identifiant doit être unique dans tout le document. De plus, le navigateur définira la demande envoyée au serveur en fonction du nom. Par conséquent, si l’ID est utilisé, le serveur ne peut pas obtenir les données. ​
2. Les noms de cadres et de fenêtres sont utilisés pour spécifier des cibles dans d'autres cadres ou fenêtres.

Seuls les identifiants peuvent être utilisés pour les éléments suivants :
1. L'association entre l'étiquette et le contrôle de formulaire,

Mon entrée

Le pour L'attribut spécifie l'association avec l'étiquette. L'identifiant de l'élément ne peut pas être remplacé par son nom.​ 2. Le mécanisme de sélection d'élément de CSS utilise #MyId pour spécifier l'élément auquel le style doit être appliqué et ne peut pas être remplacé par son nom.
3. Obtention de l'objet dans le script :
IE prend en charge le référencement direct de l'objet identifié par l'identifiant (au lieu du nom) dans le script. Par exemple, pour l'entrée ci-dessus, si vous souhaitez obtenir le contenu de l'entrée dans le script, vous pouvez l'obtenir directement avec

MyInput.value.
Si vous utilisez DOM, utilisez document.getElementById("MyInput").value. Si vous souhaitez utiliser le nom, vous obtenez généralement le formulaire contenant le contrôle en premier, tel que

document.forms[0. ], puis ensuite le nom de référence du formulaire. Notez que la valeur ainsi obtenue est la valeur qui sera envoyée au serveur après calcul.

Les autres différences entre le nom et l'identifiant sont :
L'identifiant doit être conforme aux exigences d'identification, telles que le respect de la casse, et il est préférable de ne pas inclure de traits de soulignement (car il n'est pas compatible avec CSS). Il n'y a fondamentalement aucune exigence concernant le nom, vous pouvez même utiliser des chiffres

.

Utilisez CSS pour contrôler le style de maintien de ce lien
Vous pouvez écrire comme ceci #m_blog div.opt a:hover{color:#D57813} ou #myLink:hover{color:#D57813}.

NAME est principalement utilisé dans les pages Web interactives. Le formulaire est soumis à un script côté serveur et reçoit un volume de traitement variable. Du point de vue de la standardisation et de la compatibilité du code source, si vous souhaitez indexer un objet dans le script client

, il est recommandé d'utiliser la méthode document.getElementById(). Essayez de ne pas utiliser directement la valeur NAME. Bien sûr, si ce n'est compte tenu de la compatibilité, les 9 méthodes ci-dessus

peuvent toutes fonctionner sous IE (IE5.0 n'a pas été testé).

Joindre : Code source du test



nbsp;HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

























É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