Mon Je ne peux que rendre ce travail en ce moment en utilisant un simple configurage là où il n'y a qu'un seul widget avec un bloc avec un bloc: p> p> <div>
<div>
<div>
<ol class="widget">....</ol>
</div>
</div>
</div>
3 Réponses :
itérer sur chaque p> .block code> séparément et recherchez le précédent
.widget code> au lieu d'utiliser des index:
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<ol class="widget">
<li>Item A</li>
<li>Item B</li>
</ol>
<!-- END UNTOUCHABLE WIDGET CODE -->
<li class="block">Item C</li>
<!-- BEGIN UNTOUCHABLE WIDGET CODE -->
<ol class="widget">
<li>Item X</li>
<li>Item Y</li>
</ol>
<!-- END UNTOUCHABLE WIDGET CODE -->
<li class="block">Item Z</li>
L'idée principale est de trouver chaque Bien juste suivre cette idée: p> p> .block code>, puis recherchez le précédent
.widget code> puis appendez le
.block code> au
.Widget code> trouvé.
Comment pouvons-nous faire cela? h3>
.block code> avec
$ (bloc '). Chaque () code> li>
.block code> hors du DOM en utilisant
$ (this) .Remove (); code> li>
.block code> au précédent
.widget code> avec
$ ("widget '). EQ (index) .Append (bloc); Code> li>
ol>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.0/jquery.min.js"></script>
<!-- BEGIN UNTOUCHABLE WIDGET CODE -->
<ol class="widget">
<li>Item A</li>
<li>Item B</li>
</ol>
<!-- END UNTOUCHABLE WIDGET CODE -->
<li class="block">Item C</li>
<!-- BEGIN UNTOUCHABLE WIDGET CODE -->
<ol class="widget">
<li>Item X</li>
<li>Item Y</li>
</ol>
<!-- END UNTOUCHABLE WIDGET CODE -->
<li class="block">Item Z</li>
Avez-vous vraiment copié et coller littéralement des messages répondant, puis modifier quelques identifiants?
Utiliser la méthode .eq () a fonctionné pour moi dans le scénario mis à jour. Merci!
Les autres réponses ne décrivent pas ce qui a conduit à cela ne fonctionne pas. Donc, c'est mon intention de cette réponse. P>
de la documentation de jQuery sur la Compte tenu d'un objet JQuery qui représente un ensemble d'éléments DOM, le .eq ()
méthode construit un nouvel objet JQuery Cela entraîne cet appel Vous aurez besoin d'itération sur le bloc code> block code> ou le widget .eq () code> méthode: p>
jQuery ("widget '). EQ (1) .append (bloc); code> fait exactement comme vous le décrivez. P>
code> quel que soit la plus sens pour vous. P>
S'il vous plaît vérifier ma solution
Cela fonctionnera-t-il s'il y a 3 divs entourant la liste comme celle-ci? Il semble casse dans ce cas ... jsfiddle.net/2OBXHC35