2012-10-18 12 views
25

Mam obiekt JavaScript z około 1000 właściwości i chcę utworzyć <table> tych wpisów, z ośmioma właściwościami w jednym wierszu, <tr>.Jak wymusić jQuery append, aby NIE zamykać automatycznie tagu?

Używam jQuery append(); jednak automatycznie dołącza zamykający tag </tr>. Chcę ręcznie zdefiniować, gdzie powinien się kończyć zamykanie </tr>. Jak to zrobić?

Obiekt:

var g2u = {}; 

g2u.a1 = "&#xe000;"; 
g2u.a2 = "&#xe001;"; 
g2u.a3 = "&#xe002;"; 
g2u.a4 = "&#xe003;"; 
g2u.a5 = "&#xe004;"; 
g2u.a5a = "&#xe005;"; 
g2u.a6 = "&#xe006;"; 
g2u.a6a = "&#xe007;"; 
g2u.a6b = "&#xe008;"; 
... etc... 

<table>:

<table id="list" border="1"> 
</table> 

<script> 
var ctr = 0; 
$("#list").append('<tr>'); 

for (var g in g2u) { 
    $("#list").append('<td><span class="rom">'+g+'</span>\n'); 
    $("#list").append('<span class="eh">'+g2u[g]+'</span>\n'); 
    $("#list").append('<span class="rom">&nbsp;&nbsp;</span></td>\n'); 
    ctr++; 
    if (ctr % 8 == 0) { 
    $("#list").append('</tr><tr>\n'); 
    } 
} 

uszkodzony wyjściowa:

<tbody><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr><tr></tr></tbody> 
<td><span class="rom">a1</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a2</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a3</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a4</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a5</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a5a</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a6</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a6a</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a6b</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a7</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a8</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a9</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a10</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a11</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a12</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a13</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a14</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><span class="rom">a14a</span></td><span class="eh"></span><span class="rom">&nbsp;&nbsp;</span><td><spa 

Odpowiedz

39

Po dołączeniu będzie oczywiście próbować zamknąć tagi. Postaraj się umieścić swój tekst w ciągu znaków, niż dodać ten ciąg do domu.

<script> 
    var ctr = 0; 
    var html='<tr>'; 

    for (var g in g2u) { 
     html+='<td><span class="rom">'+g+'</span>\n'; 
     html+='<span class="eh">'+g2u[g]+'</span>\n'; 
     html+='<span class="rom">&nbsp;&nbsp;</span></td>\n'; 
     ctr++; 
     if (ctr % 8 == 0) { 
     html+='</tr><tr>\n'; 
     } 
    } 


    $("#list").append(html); 
12

Myślisz pod względem znaczników HTML, z wykorzystaniem dołączania powinieneś myśleć w kategoriach html DOM, nie masz otwartych tagów i elementów zamykających tylko znaczniki.

Można użyć ciągu budować swój html następnie dołączyć go do stołu

var ctr = 0; 
var innerTable = '<tr>'; 

for (var g in g2u) { 
    innerTable += '<td><span class="rom">'+g+'</span>\n'; 
    innerTable += '<span class="eh">'+g2u[g]+'</span>\n'; 
    innerTable += '<span class="rom">&nbsp;&nbsp;</span></td>\n'; 
    ctr++; 
    if (ctr % 8 == 0) { 
    innerTable += '</tr><tr>\n'; 
    } 
} 
$("#list").append(innerTable); 
Powiązane problemy