我有一个移动应用程序,我有以下问题。
我从两个表中选择一些值,我试图从这些选择中创建一个表。 这是我的代码:
list.append('<table class="tablesorter">');
list.append('<thead><tr><th>Building</th><th>Reason</th><th>Receipt</th><th>Amount</th></tr></thead><tbody>');
for (j = 0; j < lenpay; j += 1) {
dummy1(j);
}
for (i = 0; i < len; i += 1) {
dummy(i);
}
list.append('</tbody></table>');
dummy和dummy1是从表中选择数据并为html表构建行的函数
function dummy(i){
selectsql......
list.append('<tr><td>' + data A + '</td><td>' + data B + '</td><td>' + data C + '</td><td><font color="blue">' + data D + '</font></td></tr>');
}
和
function dummy(i){
selectsql......
list.append('<tr><td>' + DATA A + '</td><td>' + DATA B + '</td><td>' + DATA C + '</td><td><font color="blue">' + DATA D + '</font></td></tr>');
}
结果是一个表格看起来html,但如果用firebug检查它,表格就会被破坏。所以我不能用专栏对它进行排序。我做错了什么?
如何创建正确的html表?
答案 0 :(得分:2)
你的桌子坏了,因为你错了。当你这样做时:
list.append('<table class="tablesorter">');
即使未指定,您已经附加了包含结束标记的<table></table>
。然后你执行此操作,附加另一个结束标记...
list.append('</tbody></table>');
将append()
与完整对象一起使用而不是标记部分。并且,如果可能的话,最后添加所有内容。一个好的方法是使用字符串变量放置所有标记,然后只调用append()
个<font>
。也不要使用var html = '',
items = [];
function dummy(i) {
selectsql......
items.push('<tr><td>' + data A + '</td>'+
'<td>' + data B + '</td>'+
'<td>' + data C + '</td>'+
'<td><span class="blue">' + data D + '</span></td></tr>');
}
html += '<table class="tablesorter">' +
'<thead>'+
'<tr>'+
'<th>Building</th>'+
'<th>Reason</th>'+
'<th>Receipt</th>'+
'<th>Amount</th>'+
'</tr>'+
'</thead>'+
'<tbody>'+
items.join('') +
'</tbody></table>';
list.append(html);
,它已被永久弃用。我没办法尝试这个,但你明白了:
{{1}}