0
votes

Créer un tableau d'objets de HTML ne fonctionne pas correctement

J'ai cette structure ici construite à partir d'une question précédente:

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="row">
  <div id="entry-wrapper">
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="ABC">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="123">
      </div>
    </div>
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="DEF">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="456">
      </div>
    </div>
  </div>
</div>


1 commentaires

Dans votre exemple, le script obtient tous les éléments actuels mais provoque un avertissement. Je suppose que vous devez ajouter un chèque si l'élément a ses propres enfants.


3 Réponses :


1
votes

Pour activer une collection JQuery en une matrice standard, vous ne devez pas faire:

jQuery("#row .entry").get()


0 commentaires

1
votes

Vous ne devez pas envelopper l'objet JQuery à l'intérieur d'un tableau. C'est réglage data ​​code> de la collection JQuery, pas les éléments.

jQuery a sa propre carte map () code> méthode, que vous pouvez utiliser pour boucler sur les éléments dans une collection (Notez qu'il faut des arguments dans l'ordre opposé de array.prototype.map () code>). Il renvoie un objet JQuery, mais vous pouvez appeler .get () code> pour convertir cela en une matrice ordinaire. P>

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="row">
  <div id="entry-wrapper">
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="ABC">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="123">
      </div>
    </div>
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="DEF">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="456">
      </div>
    </div>
  </div>
</div>


1 commentaires

Merci Barmer pour cette solution de travail. Maintenant je l'ai. Je me demandais toujours pourquoi cela fonctionne parfois avec et sans .get ()



1
votes

Vous pouvez utiliser la méthode Array.From pour convertir la collection JQuery en une matrice JavaScript.

p>

<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div id="row">
  <div id="entry-wrapper">
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="ABC">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="123">
      </div>
    </div>
    <div class="entry">
      <div class="text-wrapper">
        <input type="text" class="text" value="DEF">
      </div>
      <div class="value-wrapper">
        <input type="text" class="value" value="456">
      </div>
    </div>
  </div>
</div>


0 commentaires