Jquery-Clone() ajouter
Je suis confronté à un problème whlie essayer de cloner un div parent et en ajoutant directement sous lui-même. Ma fonction fonctionne très bien tant que le dernier nœud est
choisis donc:
<div>
<div> A </div>
<div> B </div>
<div> C </div>
</div>
entraînera
<div>
<div> A </div>
<div> A.1 </div>
<div> B </div>
<div> C </div>
</div>
Si je clone A. Mais si je clone Un de nouveau je reçois.
<div>
<div> A </div>
<div> A.1 </div>
<div> A </div>
<div> A.1 </div>
<div> B </div>
<div> C </div>
</div>
alors que je voudrais
<div>
<div> A </div>
<div> A.1 </div>
<div> A.1 </div>
<div> B </div>
<div> C </div>
</div>
Mon balisage et le code sont ci-dessous:
<div id="maindiv">
<div>
<label>First</label>
<input type="button" class="repeat1" onclick="Repeat(this)"/>
</div>
<div>
<label>Second</label>
<input type="button" class="repeat1" onclick="Repeat(this)"/>
</div>
<div>
<label>Third</label>
<input type="button" class="repeat2" onclick="Repeat(this)"/>
</div>
</div>
function Repeat(obj)
{
var CurrentDiv = $(obj).parents("div[class^='repeat']:first");
$(CurrentDiv).clone().appendTo(CurrentDiv).end();
}
J'ai aussi un problème similaire avec la suppression de où tous les nœuds enfants sont supprimés alors que je veux juste un seul div supprimé. Toute aide serait appréciée. La fonction de suppression est
function Remove(obj)
{
var CurrentDiv = $(obj).parents("div[class^='repeat']:first");
CurrentDiv.remove();
}
OriginalL'auteur SDK | 2010-02-02
Vous devez vous connecter pour publier un commentaire.
Est-ce que vous essayez de faire?
Mise à JOUR:
Si vous voulez de nidification, essayez ceci:
Comme SLaks mentionne: votre balisage est foiré. Le indentions que vous montrez sont arbitraires. Vous aurez besoin d'ajouter une autre couche de DIVs (ou utiliser ULs et LIs) pour obtenir la nidification.
OriginalL'auteur jkyle
Je pense que votre balisage est confus:
à l'aide de cette dans le corps de répéter:
$(obj).clone().text('A 1').insertAfter(obj);
doit produire:
De la même manière à l'aide de ce que le corps de votre fonction de suppression:
$(obj).siblings('div:first').remove();
doit alors faire ceci:
Id de ce que vous essayez de faire ou ami je malentendu? Aussi quel est le siginifigance de la "répétition*" classe ou était-ce une chose à utiliser comme un sélecteur pour ce que vous êtes en essayant de le mettre en œuvre?
OriginalL'auteur prodigitalson
Deux choses:
(1) La façon dont je l'ai lu, l'appel à $.fin() est superflu; je crois $.fin() n'est utile que si vous allez à la chaîne des appels de plus après cela.
(2) Il semble que vous essayez de joindre le clone de CurrentDiv comme un enfant direct (pas de frère ou sœur) de CurrentDiv; Car ce sont ces deux éléments, je ne sais pas si cela a du sens.
Mais si elle ne fait sens, qu'il est tout à fait naturel que le précédent et ce clone serait cloné dans le deuxième appel à Répéter().
Enfin -- juste pour info, les variables et les noms de fonctions ne sont pas idiomatique. Il est plus habituel de commencer par une lettre minuscule.
La suppression d'un nœud de supprimer ses enfants, sauf si vous prenez d'abord soin de déplacer ces enfants quelque part d'autre.
OriginalL'auteur Drew Wills