JQuery - 奇数整数/字符串问题

时间:2011-11-04 22:05:29

标签: javascript jquery json

我一整天都在努力,但还没有得到它。我有这段代码来加载和显示一些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 ...

那么,我的代码有问题吗? 非常感谢你!

2 个答案:

答案 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