Question

Je n'arrive pas à trouver une bonne façon de le faire, mais il semble que ce devrait être simple.J'ai un élément que je veux ajouter une div.Puis j'ai un autre élément que je veux cloner et de s'engouffrer dans cette intermédiaires div.Voici ce que j'espérais faire:

$("#somediv > ul").after("<div id='xxx'></div>").append($("#someotherdiv").clone());

Cela semble être proche, mais pas tout à fait là.Le problème, c'est que le "append" semble fonctionner sur l'original "#somediv > ul" sélecteur.Ce genre de logique, mais ce n'est pas ce que je voulais.Comment puis-je la plus efficace de sélectionner que les div que j'ai ajouté avec le "après" et de mettre mes "#someotherdiv" en elle?

Était-ce utile?

La solution

Aller dans l'autre sens et de l'utilisation insertAfter().

$("<div id='xxx'></div>")
    .append($("#someotherdiv").clone())
    .insertAfter("#somediv > ul")

Essayez d'ajouter votre générés nœuds DOM du document seulement après avoir terminé votre travail.

Une fois les nœuds sont ajoutés à l'affiche du document, le navigateur commence à écouter à tout changement pour actualiser l'affichage.Faire tout le travail avant d'ajouter les nœuds du document affiché permet d'améliorer les performances du navigateur.

Autres conseils

utilisation insertAfter():

$("<div id='xxx'></div>").insertAfter("#somediv > ul").append($("#someotherdiv").clone())

Comment puis-je la plus efficace de sélectionner que les div que j'ai ajouté avec le "après" et de mettre mes "#someotherdiv" en elle?

@Vincent solution est probablement le moyen le plus rapide pour obtenir le même résultat.Cependant, si pour quelque raison que ce soit vous avez besoin d'ajouter la balise div avec after() puis le sélectionner et de les exploiter, vous pouvez utiliser

.nextAll( [expr] )

Find all sibling elements after the current element.
Use an optional expression to filter the matched set.

Si votre js devient:

$("#somediv > ul")
    .after("<div id='xxx'></div>")
    .nextAll('#xxx')
    .append($("#someotherdiv").clone());
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top