【发布时间】:2021-11-15 23:51:45
【问题描述】:
$(document).ready(function() {
$('.zk_btn').click(function(e) {
var pass_symbol= $('#' + lastid).val();
var split_id = lastid.split("_");
var nextindex = Number(split_id[1]) + 1;
$.ajax({
url:"record_count_3.php?pass_symbol=" + pass_symbol,
method:"POST",
success:function(data)
{
var json = JSON.parse(data);
var txt = '';
if(json.length > 0){
for(var i=0;i<json.length;i++){
txt = "<td>"+json[i].openrate+"</td><td>"+json[i].highrate+"</td><td>"+json[i].lowrate+"</td><td>"+json[i].closerate+"</td>";
$("#example > tbody > tr").append(txt);
}
$('#example > tbody').append('<tr class="txt_ '+ nextindex +'"><td><input type="text" id="txt_'+ nextindex +'" name="symbol" class="txtfield" /></td></tr> </tbody>');
}
$('.content').html(data);
}
})
});
});
我在从 ajax 调用中获取数据并在 json varibale 中移动时遇到问题。当在输入框中写入符号并获取记录并在第一个 td 中显示并附加到新行时。和另一个插入符号并单击提交按钮获取记录并显示在第二个 td 但问题第二个记录显示在第一行和第二行就像屏幕截图一样。 mcb 记录显示在第二行而不是第一行。请提出我的错误
<table id='example' border='1' cellspacing='1' cellpadding='1' style='width:900px;' >
<thead>
<th> Marksymbol</th>
<th class='namecol '> Openrate</th>
<th class='namecol'> Highrate</th>
<th class='namecol'> Lowrate</th>
<th class='namecol'> Closerate</th>
</tr>
</thead>
<tbody>
<tr class ='txt_1'>
<td > <input type='text' name="symbol" id='txt_1' class='txtfield'/>
</td>
</tr>
</table>
<input type="button" id= "btnclick" class="zk_btn zk_btn_submit" name="submit1" value="SUBMIT"/>
【问题讨论】:
-
将
$("#example > tbody > tr").append(txt);替换为$("#example > tbody").append("<tr>" + txt + "</tr>");(不过有更好的方法) -
下一次,花时间正确缩进你的代码(它不可读),我不会花我的时间去做而不是考虑答案。也许其他人会想考虑一下,因为它完全让我失去了动力
-
这里有一些代码演示了如何防止 HTML 字符串组合并使事情更具可读性和简洁性:jsfiddle.net/xt6kf8a7
-
下一行代码 $("#example > tbody").append("
" + txt + " ") 不起作用。我希望数据显示在同一行
标签: javascript php html jquery ajax