J'ai le code ci-dessous pour trouver des éléments avec leur nom de classe:
// Get the element by their class name
var cur_columns = document.getElementsByClassName('column');
// Now remove them
for (var i = 0; i < cur_columns.length; i++) {
}
Je ne sais tout simplement pas comment les supprimer ... Dois-je faire référence au parent ou à quelque chose? Quelle est la meilleure façon de gérer cela?
@ Karim79:
Voici le JS:
var col_wrapper = document.getElementById("columns").getElementsByTagName("div");
var len = col_wrapper.length;
alert(len);
for (var i = 0; i < len; i++) {
if (col_wrapper[i].className.toLowerCase() == "column") {
col_wrapper[i].parentNode.removeChild(col_wrapper[i]);
}
}
Voici le HTML:
<div class="columns" id="columns">
<div class="column"><input type="checkbox" name="col_list[]" value="cows">cows</div>
<div class="column"><input type="checkbox" name="col_list[]" value="cows">cows</div>
<div class="column"><input type="checkbox" name="col_list[]" value="cows">cows</div>
<div class="column"><input type="checkbox" name="col_list[]" value="cows">cows</div>
<div name="columnClear" class="contentClear" id="columnClear"></div>
</div>
Edit: Eh bien, j'ai simplement utilisé l'option jQuery.
javascript
removeclass
Brett
la source
la source
Réponses:
En utilisant jQuery (que vous pourriez vraiment utiliser dans ce cas, je pense), vous pouvez le faire comme suit:
Sinon, vous devrez utiliser le parent de chaque élément pour le supprimer:
la source
Si vous préférez ne pas utiliser JQuery:
la source
elements
tableau.getElementsByClassName
s'agit d'une collection en direct. developer.mozilla.org/en-US/docs/Web/API/NodeListEn utilisant ES6, vous pouvez faire comme:
la source
En Javascript pur, sans jQuery ou ES6, vous pouvez faire:
la source
Cela fonctionne pour moi
la source
Brett - savez-vous que le
getElementyByClassName
support d'IE 5.5 à 8 n'est pas là selon quirksmode ?. Vous feriez mieux de suivre ce modèle si vous vous souciez de la compatibilité entre navigateurs:elements[i].parentNode.removeChild(elements[i])
comme les autres gars l'ont dit.Exemple rapide:
Voici une démo rapide.
EDIT: Voici la version fixe, spécifique à votre balisage:
Le problème était de ma faute; lorsque vous supprimez un élément du tableau d'éléments résultant, la longueur change, de sorte qu'un élément est ignoré à chaque itération. La solution est de stocker une référence à chaque élément dans un tableau temporaire, puis de boucler sur ceux-ci, en supprimant chacun d'eux du DOM.
Essayez-le ici.
la source
Je préfère utiliser
forEach
overfor
/while
looping. Pour l'utiliser, il est nécessaire de convertirHTMLCollection
enArray
premier:Faites attention, ce n'est pas nécessaire de la manière la plus efficace. Juste beaucoup plus élégant pour moi.
la source
Une ligne
Par exemple, vous pouvez faire dans cette page pour supprimer userinfo
la source
Oui, vous devez retirer du parent:
la source
Vous pouvez utiliser cette syntaxe:
node.parentNode
Par exemple:
la source
La fonction récursive peut résoudre votre problème comme ci-dessous
la source
Si vous souhaitez supprimer des éléments ajoutés dynamiquement, essayez ceci:
la source
OU
la source
C'est très simple, en une seule ligne, en utilisant l'opérateur de propagation ES6 car document.getElementByClassName renvoie une collection HTML.
la source
Le bug des éléments sautés dans ceci (code d'en haut)
peut être corrigé en exécutant simplement la boucle à l'envers comme suit (pour que le tableau temporaire ne soit pas nécessaire)
la source
Vous pouvez utiliser une solution simple, changez simplement la classe, le filtre de la collection HTML est mis à jour:
Réf: http://www.w3.org/TR/2011/WD-html5-author-20110705/common-dom-interfaces.html
la source