Insérer de nouveaux DIV entre les deux DIVs qui ont la même classe et sont immédiats frères et sœurs
Aux prises avec celui-ci pendant un certain temps maintenant. Balisage simplifié:
<div class=row>
<div class="somediv"></div>
<div class="somediv2"></div>
<div class="elem"></div>
<div class="elem"></div>
<div class="somediv3"></div>
<div class="somediv4"></div>
<div class=row>
....
J'ai besoin de trouver un moyen de sélectionner tous les DIVs sur le document prêt que:
1. dispose d'une classe: elem
2. de leur côté DIV a aussi le nom de la classe: elem.
Alors j'ai besoin d'insérer un nouveau DIV entre eux:
<div class=row>
<div class="somediv2"></div>
<div class="elem"></div>
<div class="new"></div>
<div class="elem"></div>
<div class="somediv3"></div>
<div class="somediv4"></div>
<div class=row> //and it goes...
$(document).ready( function () {
if($('.elem').next().hasClass('.elem')) {
$('<div class="new"></div>').appendTo().prev('.elem');
} else {
});
});
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
C'est à l'aide de CSS adjacente sélecteur de frères (
+
). Il trouve un élément avec la classe.elem
avec un autre élément avec la classe.elem
précède immédiatement, puis ajoute un nouveau div avant.Violon: http://jsfiddle.net/4r2k4/
La non-jQuery solution:
Démo Live: http://jsfiddle.net/2MfgB/2/
"Mais Šime, cela ne fonctionne pas avec IE8..."
:P
Mise à jour:
Solution Alternative:
Démo Live: http://jsfiddle.net/2MfgB/3/
Votre code à l'air assez bon pour moi. Ne pas vous suffit de l'envelopper dans un
each
de sorte qu'il se déclenche à chacun?