我一直在学习,我想我终于在这个小项目的尽头了,我一直在努力!我已经看过一些类似的主题,但不能完全根据我的需求调整代码!
我有正确显示的JSON输出,我希望在其中搜索特定值,并且只将这些结果粘贴到表中。
我有以下Javascript来获取XML数据并将其粘贴到表中。
的Javascript
var html = '<table id="myTable"><thead><tr><th>Entry</th>';
for ( row = 0; row < jsondata.rowCount; row++ )
{
html += "<tr><td>" + (row+1) + "</td>";
for ( column = 0; column < jsondata.columnCount; column++ )
{
if((jsondata.xmlData [ row ] [ column ]) == "Ninja")
{
html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>"
}
alert(jsondata.xmlData [ row ] [ column ]); //Added in edit - "undefined"
}
html += "</tbody></table>";
$("#tablearea").html(html);
}
编辑:JSON
"xmlData" : [ [ "Ninja", "Blue"], [ "Car", "Red"] ]
如果我排除if语句,它会将其全部粘贴,但if(使用警报进行测试时)会显示undefined
。
答案 0 :(得分:0)
看起来你的rowCount和/或columCount与数组的实际长度不匹配(可能只是切换)。
无论如何,我建议检索直接检查它们的数组的长度
var html = '<table id="myTable"><thead><tr><th>Entry</th>';
for ( row = 0; row < jsondata.xmlData.length; row++ )
{
html += "<tr><td>" + (row+1) + "</td>";
for ( column = 0; column < jsondata.xmlData[row].length; column++ )
{
if((jsondata.xmlData [ row ] [ column ]) == "Ninja")
{
html += "<td>" + jsondata.xmlData [ row ] [ column ] + "</td>"
}
}
html += "</tbody></table>";
$("#tablearea").html(html);
}
答案 1 :(得分:0)
编辑(更简洁):
我认为您的问题是您的rowCount成员与您的实际行数不匹配。您可以使用数组的.length属性,或者(在您的给定对象中),您可以执行以下操作...
var jsondata = {
rowCount: 3,
columnCount: 2,
xmlData: [["Ninja", "Blue"], ["Car", "Red"]]
};
var html = '<table id="myTable">' +
'<thead>' +
'<tr><th>Entry</th><tr>';
html += "<tbody>";
for (row = 0; row < jsondata.rowCount; row++) {
var showRow = false;
var tempHtml = "<tr>";
for (column = 0; column < jsondata.columnCount; column++) {
if (jsondata.xmlData[row]) {
tempHtml += "<td>" + jsondata.xmlData[row][column] + "</td>";
showRow = (jsondata.xmlData[row][column] == "Ninja") || showRow;
}
}
tempHtml += "</tr>";
if (showRow) {
html += tempHtml;
}
}
html += "</tbody></table>";
$("#tablearea").html(html);