12
votes

jQuery boucle pour créer des éléments

Je n'ai eu aucune chance avec cette tâche jusqu'à présent, si reconnaissante de toute aide.

J'ai une forme HTML, dans laquelle il y a un petit menu Sélectionner (1-10) IE P>

<input type = 'text' name = 'name1' id = 'id1' />
<input type = 'text' name = 'name2' id = 'id2' />


2 commentaires

Veuillez fournir une partie de votre balisage et un peu plus de détails sur ce que vous essayez de faire.


Veuillez commenter directement les réponses, ne pas ajouter de nouvelle réponse.


4 Réponses :


29
votes

quelque chose comme ceci: xxx


3 commentaires

Est-ce que JQuery sait réellement que lorsque vous appendez HTML à une DIV fermée (<

') qu'il devrait créer
jettes html ?


@Michel, oui. $ ('

') crée simplement un élément div vide et équivaut à $ ('<
') ou $ (document.createeelement ('div')) .


Nice, JQuery continue de me surprendre de manière positive



2
votes
$('select').bind('change', function () {
    var val = parseInt($(this).val(), 10) + 1,
        str = '';

    for (var i=1; i<val;i++) {
        str += '<input type="text" name="name' + i + '" id="id' + i + '"/>';
    }

    $('#container').html(str);
});

0 commentaires

6
votes

Pour modifier légèrement la réponse de Tatu, xxx

de cette façon est plus rapide et un peu plus facile à lire. La raison pour laquelle il est plus rapide est parce que JQuery est lourdement cache à créer des éléments. Il met en cache "" la première fois puis utilise simplement l'objet mis en cache pour en créer davantage d'entre eux. Cela peut faire cela parce que le texte ne change pas. Cependant, il ne peut pas faire cette mise en cache avec APPEND (ou HTML non créé en appelant la fonction principale JQuery $ AFAIK), car en raison de l'IDS, ils sont uniques chaque boucle. Voir les «choses que vous pourriez ne pas savoir sur la discours de JQuery» pour info sur ceci.


0 commentaires

1
votes

Ceci utilise $. Carte () Pour itérer sur un tableau à l'aide de l'index pour émuler l'exploitant de la plage "0..n" de langues comme Perl et PHP. Depuis $. Mappe () renvoie une matrice des valeurs de retour de chaque appel à la fonction de rappel, nous pouvons transmettre ce droit sur $ (). HTML () pour définir le contenu de l'élément parent. Neat?

Assurez-vous simplement de déclarer les paramètres «objet» de la fonction de rappel et «index» dans le bon ordre - ils sont le moyen opposé à $. Chaque () !

html xxx

js xxx

violon

https://jsfiddle.net/kmbrro/xxtbjgzo/


0 commentaires