2011-10-31 4 views
0

J'ai donc fait des recherches sur cette question toute la matinée - et je suis sûr que le code est correct mais pour expliquer que j'essaie d'inclure une table dans l'entrée générée dynamiquement, alors j'ai besoin du tr/td là-bas. J'ai passé en revue les fonctions de html/wrap/append en vain ... :-(jquery wrap (éléments dynamiques)

Voir le commentaire là pour le manuscrit complet mais vraiment ceci est la viande de lui n'importe quelle aide serait considérablement appréciée

J'ai essayé le wrap et le document écrit, mais il ne l'aime pas. que dois-je manque ???

$(document).ready(function() { 
    $('#btnAdd').click(function() { 
     var num  = $('.clonedInput').length; // how many "duplicatable" input  fields we currently have 
     var newNum = new Number(num + 1);  // the numeric ID of the new input  field being added 
     //http://charlie.griefer.com/blog/2009/09/17/jquery-dynamically-adding- form-elements/ 
     // create the new element via clone(), and manipulate it's ID using newNum  value 
     var newElem = $('#input' + num).clone().attr('id', 'input' +  newNum).wrap('<td />'); 
     // manipulate the name/id values of the input inside the new element 
     newElem.children(':first').attr('id', 'name' + newNum).attr('name', 'name'  + newNum).val(''); 
     newElem.children(':second').attr('id', 'amt' + newNum).attr('name', 'amt'  + newNum).val(''); 
     newElem.children(':third').attr('id', 'value' + newNum).attr('name',  'value' + newNum).val(''); 
     newElem.children(':fourth').attr('id', 'test' + newNum).attr('name',  'test' + newNum).val(''); 
     // insert the new element after the last "duplicatable" input field 
     document.write("<tr>"); 
     $('#input' + num).after(newElem); 
     document.write("</tr>"); 
+0

Pouvez-vous clarifier votre question? –

+0

Jetez un oeil dans l'API jQuery sur 'prepend()' 'append()' - Je pense que c'est beaucoup plus confortable que 'document.write()'. – Smamatti

Répondre

0

en utilisant document.write() dans $(document).ready() essuiera votre document existant et commencer un nouveau document. Je préfère doute que c'est ce que vous avez l'intention (d'autant plus que vous semblez essayer d'ajouter des lignes à une table existante)

Vous devez utiliser les fonctions jQuery pour insérer de nouveaux éléments dans le DOM au lieu de document.write(). Il y a beaucoup d'appels jQuery pour manipuler le DOM. Vous pouvez voir certains d'entre eux here. Je suppose que vous voulez des appels comme append() ou after().