2010-12-10 7 views
2

Je souhaite ajouter une chaîne à la fin d'un objet jquery. Quelque chose comme ceci:Problème Jquery: ajout d'un objet à un objet jquery

var mytable = $("<table><tbody><tr><td>"); 
mytable.after("Test</td></tr></tbody></table>"); 

J'ai essayé avec cela aussi

mytable += "Test</td></tr></tbody></table>"; 

Ne fonctionne pas non plus.

Répondre

1

jQuery ne fonctionne pas de cette façon. Lorsque vous traitez des éléments dans jQuery, ils sont toujours valides. S'il ne peut pas le valider, il ne l'ajoutera pas. J'ai essayé votre exemple et le code HTML jQuery complété invalide:

var mytable = $("<table><tbody><tr><td>");  
// mytable is equal to $("<table><tbody><tr><td></td></tr></tbody></table>"); 

Si vous cherchez à ajouter une nouvelle cellule à votre table, vous pouvez sélectionner l'élément nécessaire (la tr), puis utilisez la méthode append

mytable.find("tr").append("<td>New cell</td>"); 

Bien sûr, vous pouvez ajouter deux chaînes ensemble et les mettre dans un objet jQuery aussi longtemps qu'ils se rejoignent pour rendre valide HTML

var string1 = "<table><tbody><tr><td>First half and"; 
    string1 = " second half</td></tr></tbody></table>"; 

mytable = $(string1 + string2); 
+0

Ah ok, je pense que cela m'aide à mieux comprendre jquery. Je pense que je sais comment réparer ça maintenant. Merci et merci à tous pour votre aide. – huuerequer

1

problème ici est que

"<table><tbody><tr><td>" //jQuery will try to create full html elements from what you enter 

n'est pas valide html ni

"Test</td></tr></tbody></table>" // this will never work, cause this tags are closing only and the table might have been already build when the line before gets executed 

jQuery pourrait être en mesure de créer des éléments valides de ne pas entièrement valide html, mais cela ne fonctionne pas dans tous les cas . Je vous suggère de tenter de travailler avec du html valide !!!

1

jQ uery ne peut pas créer d'éléments de page à moins que vous ne fournissiez un code HTML valide complet. Je ne suis pas sûr de vos besoins exacts mais vous devriez faire quelque chose sur cette ligne:

var mytable = $("<table><tbody><tr><td></td></tr></tbody></table>").find("td").text("Test");