Propriétés de la structure et du contenu
nodype
Tous les nœuds ont des types et il existe un total de 12 types de nœuds.
La copie de code est la suivante:
Node d'interface {
// nodice
const non signé element_node = 1;
const non signé court attribut_node = 2;
const non signé courte text_node = 3;
const non signé CDATA_SECTION_NODE = 4;
const unsigned short entity_reference_node = 5;
const non signé entité_node = 6;
const non signé court processing_instruction_node = 7;
const non signé court comment_node = 8;
const non signé un document court_node = 9;
const non signé un document court_type_node = 10;
const non signé un document court_fragment_node = 11;
const non signé notation_node = 12;
...
}
Les deux nœuds les plus importants sont les nœuds d'élément (1) et les nœuds de texte (3). Les autres sont rarement utilisés.
Par exemple, lors de la répertorié tous les nœuds d'éléments enfants, nous pouvons y itérer et utiliser les dognes ChildNodes [i] .NodeType! = 1 pour détecter.
Voici le code d'implémentation:
La copie de code est la suivante:
<body>
<div> Autorisé les lecteurs: </div>
<ul>
<li> John </li>
<li> Bob </li>
</ul>
<! - Un nœud de commentaire ->
<cript>
var childnodes = document.body.childnodes
for (var i = 0; i <childnodes.length; i ++) {
if (childnodes [i] .NodeType! = 1) Continuer
alerte (childnodes [i])
}
</cript>
</docy>
*pense
Quelle sera l'invite de code suivant:
La copie de code est la suivante:
<! Doctype html>
<html>
<body>
<cript>
alert (document.body.lastchild.nodetype)
</cript>
</docy>
</html>
nodename, tagname
Nodename et TagName contiennent le nom du nœud.
Pour document.body
alert (document.body.nodename) // corps
Tous les noms de nomen de HTML seront capitalisés.
Quand Nodename n'est pas capitalisé
Cette situation est rare, si vous êtes curieux, vous pouvez lire ce qui suit.
Vous savez probablement déjà qu'il existe deux façons pour les navigateurs d'analyser: motif HTML et modèle __xml. Habituellement, le schéma HTML est utilisé, mais lorsque la technologie XMLHTTPRequest__ est utilisée pour obtenir des documents XML, le schéma XML est utilisé.
Le modèle XML est également utilisé dans Firefox lorsque le type de contenu du document XHTML est défini sur XMLISH.
En mode __xml, le nom du nœud sera conservé, de sorte que le corps ou le corps peut apparaître.
Par conséquent, si le document XML à HTML est chargé à partir du serveur via la technologie XMLHTTPREQUEST__, le nom du nœud sera conservé.
Nodename et __tagname__ sont les mêmes pour les éléments.
Cependant, les nœuds non élémentaires ont également des attributs de Nodeame, dans lesquels ils ont des valeurs spéciales:
alert (document.nodeName) // #Document
La plupart des types de nœuds n'ont pas d'attribut tagname, et le nom de tagnom du nœud est annoté dans IE est!.
Par conséquent, d'une manière générale, Nodename est plus significatif que Tagname. Mais TagName est comme une version simplifiée, donc lorsque vous ne traitez que les nœuds d'élément, vous pouvez l'utiliser.
innerhtml
InnerHTML fait partie de la norme HTML5. Veuillez consulter le lien pour plus de détails
Il permet d'accéder au contenu du nœud dans le texte. L'exemple suivant sortira tous le contenu de Document.body et les remplacera par le nouveau contenu.
La copie de code est la suivante:
<body>
<p> Le paragraphe </p>
<div> et un div </div>
<cript>
alert (document.body.innerhtml) // Lire le contenu actuel
document.body.innerhtml = 'yaaahoo!' // remplacer les contenus
</cript>
</docy>
InnerHTML contiendra un HTML efficace. Mais les navigateurs peuvent également analyser le HTML déformé.
InnerHTML peut être utilisé dans n'importe quel nœud d'élément. C'est très, très utile.
Pièges innerhtml
InnerHTML n'est pas aussi simple qu'il n'y paraît. Il a quelques pièges en attente des novices, et parfois les programmeurs expérimentés ne peuvent pas l'éviter.
Le nœud innerhtml du nœud __Table__ dans IE est en lecture seule
Dans IE, InnerHTML est en lecture seule dans Col, Colgroup, Frameset, Head, HTML, Style, Table, TBODY, TFOOT, Thead, Title, TR et d'autres éléments.
Dans les balises de table dans IE, l'InnerHTML est en lecture seule sauf pour TD.
innerhtml ne peut pas être ajouté
D'après la structure de la déclaration, InnerHTML peut effectuer des opérations d'ajout, telles que:
chatdiv.innerhtml + = "<v> hi <img src = 'sourire.gif' />! </div>"
chatdiv.innerhtml + = "Comment allez-vous?"
Mais ce qui a été fait en fait:
1. Le contenu ancien est effacé
2. Le nouveau contenu est analysé et inséré. Le contenu n'était pas annexé, il a été régénéré.
Par conséquent, toutes les images et autres ressources seront rechargées après l'opération + =, y compris Smile.gif.
Heureusement, il existe d'autres moyens de mettre à jour le contenu, qui n'utilise pas InnerHTML, il n'y a donc aucun problème mentionné ci-dessus.
novice novice
InnerHTML n'est valable que pour les nœuds d'élément.
Pour d'autres types de nœuds, ils utilisent la propriété Nodevalue pour obtenir le contenu. L'exemple suivant illustrera comment il fonctionne sur les nœuds de texte et les nœuds de commentaire.
La copie de code est la suivante:
<body>
Le texte
<! - un commentaire ->
<cript>
pour (var i = 0; i <document.body.childnodes.length; i ++) {
alert (document.body.childnodes [i] .Nodevalue)
}
</cript>
</docy>
Dans l'exemple ci-dessus, certains avertissements sont vides en raison de nœuds vierges. Notez que nodevalue === null pour les nœuds de script. C'est parce que le script est un nœud d'élément. Node d'élément, utilisez innerHTML.
Résumer
nodype
Type de nœud. La chose la plus importante est que le nœud d'élément est 1, le nœud de texte est 3 et il est en lecture seule.
NODENAME / TAGNAME
Nom de la balise Caps. Pour les nœuds non élémentaires, Nodename aura également des valeurs spéciales, en lecture seule.
innerhtml
Le contenu du nœud d'élément peut être écrit.
novice novice
Le contenu du nœud de texte peut être écrit.
Le nœud Dom a d'autres attributs en fonction de son type. Par exemple, la balise d'entrée a une valeur et des attributs __ched__. L'attribut a a href et ainsi de suite.
Ce qui précède est tout sur cet article, j'espère que vous l'aimez.