nous examinerons NodeList et HTMLCollection en détail et ce que sont NodeList et HTMLCollection.
Tout d'abord, les deux ont une propriété de longueur qui renvoie le nombre d'éléments dans la liste (collection).
HTMLCollection dans le DOM HTML est en ligne ; getElementsByClassName() ou getElementsByTagName() renvoie un HTMLCollection vivant représentant un objet de type tableau de tous les éléments enfants qui ont tous les noms de classe donnés .
Exemple :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeList and HTMLCollection</title> </head> <body> <ul> <pre class="brush:php;toolbar:false">const selected = document.getElementsByClassName("items") console.log(selected)
Sortie :
HTMLCollection est automatiquement mis à jour lorsque le document sous-jacent est modifié.
Écrivons un exemple :
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeList and HTMLCollection</title> </head> <body> <div> <pre class="brush:php;toolbar:false">const selected = document.getElementsByClassName("card") console.log(selected) selected[0].innerHTML += `<li> <p><strong>Output</strong> : </p> <p><img src="https://img.php.cn/upload/article/000/000/000/173086920639726.jpg" alt="NodeList vs HTMLCollection: The Difference Between Live and Static Collections"></p> <p>As can be seen from the output, when a new HTML tag is added to the element with the card class, the <strong>HTMLCollection</strong> is updated <strong>because it is live</strong></p> <hr> <h2> 2. NodeList </h2> <p><strong>querySelectorAll()</strong> returns a <strong>static</strong> <strong>(non live)</strong> <strong>NodeList</strong> representing a list of the document's elements that match the specified group of selectors. but <strong>childNodes</strong> return a <strong>live NodeList</strong>. </p> <p><strong>Example</strong> :<br> </p> <pre class="brush:php;toolbar:false"><!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeList and HTMLCollection</title> </head> <body> <ul> <pre class="brush:php;toolbar:false">const selected = document.querySelectorAll(".items") console.log(selected)
Sortie :
La NodeList renvoyée par querySelectorAll() n'est pas automatiquement mise à jour lorsque des modifications sont apportées au document sous-jacent car elle n'est pas active.
Écrivons un exemple :
<!DOCTYPE html> <html lang="fr"> <tête> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeList et HTMLCollection</title> ≪/tête> <corps> <div> <pre class="brush:php;toolbar:false">const sélectionné = document.querySelectorAll(".card") sélectionné[0].innerHTML = `<li> <p><strong>Sortie</strong> : </p>
Comme le montrent les résultats, lorsqu'une nouvelle balise HTML est ajoutée à l'élément avec la classe card, le navigateur se met à jour, mais la NodeList n'est pas mise à jour car NodeList n'est pas active .
La NodeList renvoyée par childNodes est automatiquement mise à jour lorsque des modifications sont apportées au document sous-jacent car il est en ligne.
Exemple :
<!DOCTYPE html> <html lang="fr"> <tête> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>NodeList et HTMLCollection</title> ≪/tête> <corps> <div> <pre class="brush:php;toolbar:false">const sélectionné = document.querySelector(".card") sélectionné.innerHTML = `<li> <p><strong>Sortie</strong> : </p> <p><img src="https://img.php.cn/upload/article/000/000/000/173086921039201.jpg" alt="NodeList vs HTMLCollection: The Difference Between Live and Static Collections"></p> <p>Comme le montre le résultat, lorsqu'une nouvelle balise HTML est ajoutée à l'élément avec la classe card, la <strong>NodeList</strong> est mise à jour <strong>car elle est en direct</strong>.</p> <hr> <h2> Conclusion </h2> <p><strong>En conclusion, une HTMLCollection est toujours une collection live. Une NodeList est le plus souvent une collection statique.</strong></p> <p>Nous avons examiné ce que sont <strong>NodeList</strong> et <strong>HTMLCollection</strong>. Vous savez maintenant ce que sont <strong>NodeList et HTMLCollection</strong>.</p>
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!