Quelle est la différence entre $('this')[0].nodeName
et $('this')[0].tagName
?
javascript
dom
Kdniazi
la source
la source
Réponses:
La
tagName
propriété est destinée spécifiquement aux nœuds d'élément ( nœuds de type 1) pour obtenir le type d' élément .Il existe également plusieurs autres types de nœuds (commentaire, attribut, texte, etc.). Pour obtenir le nom de l'un des différents types de nœuds, vous pouvez utiliser la
nodeName
propriété .Lors de l'utilisation
nodeName
contre un nœud d'élément , vous obtiendrez son nom de balise, donc l'un ou l'autre pourra vraiment être utilisé, même si vous obtiendrez une meilleure cohérence entre les navigateurs lors de l'utilisationnodeName
.la source
C'est une assez bonne explication de la différence entre les deux.
Ajout du texte de l'article:
la source
Découvrez ces propriétés dans la spécification DOM Core.
nodeName
est une propriété définie dans l'interface Nodehttp://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-F68D095
tagName
est une propriété définie dans l'interface Elementhttp://www.w3.org/TR/DOM-Level-3-Core/core.html#ID-104682815
btw l'interface Node est implémentée par chaque nœud de l'arborescence DOM (y compris l'
document
objet lui-même). L'interface Element est implémentée uniquement par les nœuds de l'arborescence DOM qui représentent des éléments dans un document HTML (nœuds avecnodeType
=== 1).la source
Et voici ce qui se passe sur Firefox 33 et Chrome 38:
HTML:
Js:
Alors:
nodeType
pour obtenir le type de nœud:nodeName
pause pournodeType === 1
tagName
pournodeType === 1
la source
nodeName
casser pournodeType === 1
»?