Mise à jour
Après avoir obtenu un nœud DOM, nous pouvons le mettre à jour.
Vous pouvez modifier directement le texte du nœud. Il existe deux méthodes :
La première consiste à modifier le innerHTML attribut, cette La méthode est très puissante. Non seulement vous pouvez modifier le contenu du texte d'un nœud DOM, mais vous pouvez également modifier directement le sous-arbre à l'intérieur du nœud DOM via des fragments HTML :
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置文本为abc: p.innerHTML = 'ABC'; // <p id="p-id">ABC</p> // 设置HTML: p.innerHTML = 'ABC <span style="color:red">RED</span> XYZ'; // <p>...</p>的内部结构已修改
innerHTML, veuillez faire attention à savoir si vous devez écrire du HTML. Si la chaîne écrite est obtenue via le réseau, faites attention au codage des caractères pour éviter les attaques XSS. La seconde consiste à modifier les attributs
innerText ou textContent, afin que la chaîne puisse être automatiquement codée en HTML et ne puisse pas être défini. N'importe quelle balise HTML :
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置文本: p.innerText = '<script>alert("Hi")</script>'; // HTML被自动编码,无法设置一个<script>节点: // <p id="p-id"><script>alert("Hi")</script></p>
innerText n'est pas renvoyé Masque le texte de l'élément, tandis que textContent renvoie tout le texte. Notez également qu'IE<9 ne prend pas en charge textContent. La modification du CSS est également une opération fréquemment requise. L'attribut
style du nœud DOM correspond à tous les CSS et peut être obtenu ou défini directement. Parce que CSS autorise des noms comme font-size, mais ce n'est pas un nom de propriété valide en JavaScript, il doit être réécrit en JavaScript sous la forme d'un nom de casse chameau fontSize :
// 获取<p id="p-id">...</p> var p = document.getElementById('p-id'); // 设置CSS: p.style.color = '#ff0000'; p.style.fontSize = '20px'; p.style.paddingTop = '2em';
Insérer
Si ce nœud DOM est vide, par exemple
, alors, utilisez directement innerHTML = '< span>child' peut modifier le contenu du nœud DOM, ce qui équivaut à "insérer" un nouveau nœud DOM. Si le nœud DOM n'est pas vide, vous ne pouvez pas le faire car
innerHTML remplacera directement tous les nœuds enfants d'origine. Il existe deux façons d'insérer de nouveaux nœuds. La première consiste à utiliser
appendChild pour ajouter un nœud enfant au dernier nœud enfant du nœud parent. Par exemple :
<!-- HTML结构 --> <p id="js">JavaScript</p> <p id="list"> <p id="java">Java</p> <p id="python">Python</p> <p id="scheme">Scheme</p> </p>
JavaScript :
var js = document.getElementById('js'), list = document.getElementById('list'); list.appendChild(js);
<!-- HTML结构 --> <p id="list"> <p id="java">Java</p> <p id="python">Python</p> <p id="scheme">Scheme</p> <p id="js">JavaScript</p> </p>
Le plus souvent, nous créerons un nouveau nœud à partir de zéro et l'insérerons dans la position spécifiée :
var list = document.getElementById('list'), haskell = document.createElement('p'); haskell.id = 'haskell'; haskell.innerText = 'Haskell'; list.appendChild(haskell);
<!-- HTML结构 --> <p id="list"> <p id="java">Java</p> <p id="python">Python</p> <p id="scheme">Scheme</p> <p id="haskell">Haskell</p> </p>