//dom
<div id='toBeCloned'><span>Some name</span></div>
<div id='targetElm'></div>
//js
$(function() {
//creating a clone
var _clone = $('#toBeCloned').clone(true);
// target element
var _target = $('#targetElm');
//now target element is to be filled with cloned element with data of span changed
var _someData = [1, 2, 3, 4];
//loop through data
$.each(_someData, function (i, data) {
var _newElm = {};
$.extend(_newElm, _clone);//copy cloned to new Elm
_newElm.find('span').html(data); //edit content of span
alert('p'); // alert added to show that append in next line inspite of adding new element to dom just updating the previous one
_target.append(_newElm);//update target
});
});
expected Result:
1 2 3 4
resut iam getting is
4
Répondre
Vous souhaitez simplement cloner l'élément à chaque itération. Un objet DOM n'est pas un objet normal JS (Eh bien, il est, mais il a plus à ce qui est la raison pour laquelle vous devez utiliser createElement
dans JS brut pour créer un nouveau):
$(function() {
// element to be cloned
var _clone_me = $('#toBeCloned');
// target element
var _target = $('#targetElm');
//now target element is to be filled with cloned element with data of span changed
var _someData = [1, 2, 3, 4];
//loop through data
$.each(_someData, function (i, data) {
var _newElm = _clone_me.clone(true); // clone copy
_newElm.find('span').html(data); //edit content of span
_target.append(_newElm); //update target
});
});
Pourquoi votre code a échoué, Bien que vous "étendiez" un objet vide à chaque itération, il faisait toujours référence au même noeud DOM. Vous avez continué à modifier sa valeur et à l'ajouter à #target
. En outre, la façon dont fonctionne append
déplace réellement l'objet, de sorte que vous n'obteniez pas d'objets en double.
je viens créé une autre question pour simplifier ma question http://stackoverflow.com/questions/2452397/clonning-an-element-and-adding-it-to-dom-multiple-times-jquery même si votre solution est quelque part à proximité mon exigence –
- 1. élément cloné jquery Accès
- 2. Suppression et réinsertion de UIView dans UIViewController
- 3. Obtention d'un ID d'un élément cloné
- 4. Suppression et réinsertion des colonnes ListView (.NET)
- 5. Conserver la référence à l'élément après suppression et réinsertion ultérieure
- 6. Réinsertion des NA dans un vecteur
- 7. jQuery: Recherche d'un enfant cloné dans un parent cloné?
- 8. Adobe Stratus, RTMFP, et code cloné
- 9. Besoin d'un élément d'entrée de fichier cloné d'une forme dans une autre via PHP & Javascript
- 10. Référencement d'un widget cloné dans gwt
- 11. Comment insérer un élément cloné avec une chaîne de balisage HTML?
- 12. valeur Accès/modification jquery attribut d'un élément
- 13. Modification d'innerHTML d'un élément créé avec innerHTML
- 14. distinguer entre les événements bloc HTML original et cloné
- 15. Android: modification d'un élément XML dans une minuterie
- 16. Modification du format d'un élément ComboBox
- 17. Modification d'un élément XML enfant dans un parent
- 18. changement objet HTML à l'intérieur objet cloné
- 19. Pourquoi String :: sub!() Modifie l'original d'un objet cloné dans Ruby?
- 20. jQuery draggable laissant html cloné derrière
- 21. Ajout d'un SPView cloné à une liste
- 22. Un fichier déjà utilisé peut-il être cloné dans VB.NET?
- 23. Est-il possible de faire glisser un élément HTML hors d'un autre élément et de déclencher une modification avec jQuery?
- 24. Restriction Modification et suppression
- 25. Lecture et modification de texte dans Silverlight
- 26. Modification des propriétés dans l'objet avec LINQ et fonctions Lamba
- 27. jQuery clone() FireFox bug - impossible de soumettre un formulaire cloné
- 28. comment fusionner le dépôt git cloné avec le dépôt d'origine
- 29. Qu'est-ce que la branche actuellement active du dépôt cloné?
- 30. Comment démarrer un projet github cloné (ruby on rails)
Je viens de créer une autre question pour simplifier ma question http://stackoverflow.com/questions/2452397/clonning-an-element-and-adding-it-to-dom-multiple-times-jquery –