2010-03-24 4 views
-1

Ce code produit un désordre ... Qu'est-ce que je fais mal?Jquery table cell

cell=$("<td>"); 
     if(normal.exam_type=="Exam_Boolean") 
     { 
      var input=cell.append("<input>").last(); 

      input.attr("type","hidden"); 
      input.attr("name","exam.exam_Normal['" +normal_id_unique + "'].boolean_v"); 
      input.attr("value",normal.normal_boolean);    

Répondre

1

que je le ferais de cette façon:

var cell = $("<td></td>"); 
if(normal.exam_type=="Exam_Boolean") 
{ 
    $("<input />").attr("type", "hidden") 
      .attr("name", "exam.exam_Normal['" +normal_id_unique + "'].boolean_v") 
      .attr("value", normal.normal_boolean) 
      .appendTo(cell); 
); 

[avant les sauts de ligne ne sont que des points pour une meilleure lisibilité.]

Vous devrez peut-être également placer la cellule dans le document avant d'ajouter des éléments. Je ne suis pas sûr

+0

il semble fonctionner ... Cependant appendTo ne semble pas retourner une référence à $ ("input />") – GorillaApe

+0

il devrait absolument. Que retourne-t-il alors? connectez-vous à firebug et jetez un oeil – naugtur

0

Plutôt que d'utiliser cell.append(input) - qui renvoie une référence à cell - essayer de le faire "l'inverse" comme input.appendTo(cell):

var cell = $("<td>"); 
if(normal.exam_type=="Exam_Boolean") 
{ 
    var input= $("<input />").appendTo(cell); 
    input.attr("type", "hidden"); 
    input.attr("name", "exam.exam_Normal['" + normal_id_unique + "'].boolean_v"); 
    input.attr("value", normal.normal_boolean); 
); 
+0

Bonne idée, je vais essayer – GorillaApe

+0

me donne une exception jquery :( – GorillaApe

+0

@Parhs:. Pourquoi, où il semble ok me –

0

Cela dépend de ce que vous voulez que le code fasse. Si vous voulez ajouter l'entrée après le dernier élément dans la cellule, puis essayez:

cell=$("<td>"); 
if(normal.exam_type=="Exam_Boolean") 
{ 
    var input=cell.last().after("<input>"); 

    input.attr("type","hidden"); 
    input.attr("name","exam.exam_Normal['" +normal_id_unique + "'].boolean_v"); 
    input.attr("value",normal.normal_boolean); 
}; 

Si cela ne fait pas ce que vous désirez, peut-être vous devriez poster une partie du code html et une meilleure description de ce que vous voulez votre code à faire.

+0

je vous remercie im ok – GorillaApe

+0

de rien! – lugte098