我打算使用jquery从sql附加行,但导致所有行都附加到ad的第一个td中。
,代码是
<body>
<table id="table">
<thead><td>A</td><td>B</td><td>C</td><td>D</td><td>E</td><td>F</td><td>G</td></thead>
</table>
</body>
</html>
<script>
$(document).ready(function(){
var sql = "select*from test";
$.ajax({
url:"query.php",
data:{
sqls:sql
},
async:false,
success:function(data){
var returned_data = JSON.parse(data);
for(var i=0;i<returned_data.length;i++){
var temp_str = "<tr class='row'>";
temp_str += "<td class='cell'>";
temp_str += "<input class='cell_vale' type='text' value='";
temp_str += returned_data[i]['firstcell']+"'>";
temp_str += "</td>";
... the other 5 cells is same ...
temp_str += "</tr>";
$("table").append(temp_str);
}
}
});
});
</script>
我尝试使用tbody但失败了,
还尝试删除了广告,
但是表格宽度不适合单元格,
如果一行中有很多单元格,则这些单元格可能会显示为两行,但只能显示一个tr。
有人可以帮助我吗?谢谢
答案 0 :(得分:0)
首先,我建议您使用现代的数据绑定方法,以更轻松,更干净地实现您要执行的操作。看看VueJS或React,它们一定会帮您大忙!
第二,尝试将temp_str
和行附件移到for..loop之外,像这样
var returned_data = [
{ firstcell: 'cell1' },
{ firstcell: 'cell2' },
{ firstcell: 'cell3' }
];
var temp_str = "";
for(var i = 0; i < returned_data.length; i++) {
temp_str += "<tr class='row'>";
temp_str += "<td class='cell'>";
temp_str += "<input class='cell_vale' type='text' value='";
temp_str += returned_data[i]['firstcell'] + "'>";
temp_str += "</td>";
temp_str += "</tr>";
}
$("table").append(temp_str);
看看它是否适合您?