Maison > interface Web > js tutoriel > NodeList vs HTMLCollection : la différence entre les collections dynamiques et statiques

NodeList vs HTMLCollection : la différence entre les collections dynamiques et statiques

Mary-Kate Olsen
Libérer: 2024-11-06 13:00:03
original
901 Les gens l'ont consulté

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).


1. Collection HTML

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)
Copier après la connexion

Sortie :

NodeList vs HTMLCollection: The Difference Between Live and Static Collections


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)

Copier après la connexion

Sortie :

NodeList vs HTMLCollection: The Difference Between Live and Static Collections


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>
&Lt;/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>

Copier après la connexion
  • Navigateur

NodeList vs HTMLCollection: The Difference Between Live and Static Collections

  • Console

NodeList vs HTMLCollection: The Difference Between Live and Static Collections

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>
&Lt;/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>


          

            
        
Copier après la connexion

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!

source:dev.to
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal