我一整天都在努力,但还没有得到它。我有这段代码来加载和显示一些JSON数据:
var id = firstLevel.id;
$.each(thirdLevel, function(index4, fourthLevel) {
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>M "+fourthLevel.male+"</td>");
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>H "+fourthLevel.herm+"</td>");
currentRow++;
console.log(id);
});
应该使用表的id将新列插入到一行中(我有很多表,每个表都有不同的ID)但是“id”变量似乎没有正常工作,我是将其打印到控制台并且它具有正确的值(第一次迭代中为421)
现在,如果我这样做:
var id = 421;
$.each(thirdLevel, function(index4, fourthLevel) {
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>M "+fourthLevel.male+"</td>");
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>H "+fourthLevel.herm+"</td>");
currentRow++;
console.log(id);
});
它会工作,并在表格中插入所有新列,ID为421 ...
那么,我的代码有问题吗? 非常感谢你!
答案 0 :(得分:1)
编辑:正如ZenMaster在评论中指出的那样,因为您没有使用id
作为数字,所以这绝对不是问题。
您提取的数据很可能确实是一个字符串,您需要显示您的JSON的样子。
如果是这种情况,您将需要使用 parseInt
函数告诉javascript将字符串解析为整数。
var id = parseInt(firstLevel.id);
$.each(thirdLevel, function(index4, fourthLevel) {
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>M "+fourthLevel.male+"</td>");
$('#'+id+' tr:nth-child('+currentRow+')').append("<td>H "+fourthLevel.herm+"</td>");
currentRow++;
console.log(id);
});
击> <击> 撞击>
答案 1 :(得分:1)
首先numeric IDs are invalid。所以不要使用它们。
其次要确保firstLevel.id
没有尾随或前导空格..
尝试console.log(id, id.toString().length);
并查看length
是否确实为3