J'aimerais supprimer tous les éléments correspondant, mais sauter la première instance de chaque match:jQuery .each() avec plusieurs sélecteurs - saut, puis .empty() éléments
// Works as expected: removes all but first instance of .a
jQuery ('.a', '#scope')
.each (function (i) {
if (i > 0) jQuery (this).empty();
});
// Expected: removal of all but first instance of .a and .b
// Result: removal of *all* instances .a and .b
jQuery ('.a, .b', '#scope')
.each (function (i) {
if (i > 1) jQuery (this).empty();
});
<div id="scope">
<!-- Want to keep the first instance of .a and .b -->
<div class="a">[bla]</div>
<div class="b">[bla]</div>
<!-- Want to remove all the others -->
<div class="a">[bla]</div>
<div class="b">[bla]</div>
<div class="a">[bla]</div>
<div class="b">[bla]</div>
...
</div>
Toutes les suggestions?
- En utilisant
jQuery()
plutôt que$()
en raison du conflit avec le code 'héritage' - En utilisant
.empty()
parce.a
contient JS Je voudrais désactiver - Coincé avec jQuery 1.2.3
Merci toi!
Il _is_ possible d'utiliser ': gt()' avec un sélecteur combiné: 'jQuery (». a: gt (0), .b: gt (0) '). empty() 'fonctionne bien. Pouvez-vous me dire pourquoi mon approche ne fonctionnait pas? Merci beaucoup! – joe
Oh non, tu as raison j'ai essayé ça et le tien fonctionne bien aussi. ** Édité ma réponse **. –