2010-07-18 5 views
0

Voici mon code:jQuery div table append deux fois

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
    ; "http://www.w3.org/TR/html4/loose.dtd"><html> 
    <head> 
     <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> 
     <script type="text/javascript" src="jquery-1.4.2.min.js"></script> 
    </head> 
    <body> 
    <div id="divmenutable"></div> 
    <script type="text/javascript"> 
    $(document).ready(function() { 
    var menuTable = $("<table><table>").addClass("table_menu"); 
    var menuRow = $("<tr></tr>"); 
    var menuCol = $("<td>awef</td>"); 
    menuRow.append(menuCol); 
    menuTable.append(menuRow); 
    $("#divmenutable").append(menuTable); 
    }); 
    </script> 
    </body> 
</html> 

Le résultat, div ajouter table deux fois. Je ne sais pas pourquoi. Mon vrai code est d'utiliser la boucle 'for' pour ajouter des données à la table. J'ai minimisé mon code pour montrer le problème.

+0

Pour optimiser les choses, vous voudrez peut-être juste à mettre tout dans le sélecteur menuTable l'avant: var menuTable = $ ("

awef
"); – virstulte

Répondre

5

Vous créez deux tables. Fermez l'étiquette de fin.

$('<table><table>').length // 2 

Versus

$('<table></table>').length // 1 

Pourrait aussi faire

$('<table/>') 
+0

Une bonne lecture à propos de l'ajout dans jQuery: http://www.learningjquery.com/2009/03/43439-reasons-to-use-append-correctly – gearsdigital

+0

Votre dernière table ne nécessite pas la notation de balise de fin. $ ('

') fonctionne dandy dans jQuery. –