Javascript jquery正在将json数据解析到表中,但我已经隐藏了列

Javascript jquery正在将json数据解析到表中,但我已经隐藏了列,javascript,jquery,json,Javascript,Jquery,Json,我正在用jquery mobile和json编写一个移动应用程序。 我有两个不同的问题 1) 我有一个json数据,例如id、姓名、姓氏、点、邮件,我有一个表来列出这些数据,但在开始的时候我在表中隐藏了邮件列,我有一个“要显示的列”按钮。用户可以更改要显示的列。当我想添加一个新的数据行时,我遇到了隐藏列的问题,我使用了append(tr)方法,这段代码使新的数据隐藏列可见 2) 我的第二个问题是,我正在用jsonlint检查我的json数据,它说我的数据没有问题!我有两个不同的记录,但是当我使用

我正在用jquery mobile和json编写一个移动应用程序。 我有两个不同的问题

1) 我有一个json数据,例如id、姓名、姓氏、点、邮件,我有一个表来列出这些数据,但在开始的时候我在表中隐藏了邮件列,我有一个“要显示的列”按钮。用户可以更改要显示的列。当我想添加一个新的数据行时,我遇到了隐藏列的问题,我使用了append(tr)方法,这段代码使新的数据隐藏列可见

2) 我的第二个问题是,我正在用jsonlint检查我的json数据,它说我的数据没有问题!我有两个不同的记录,但是当我使用这个函数时,datam.lenght是527,datam[i].name是未定义的

function drawTable(datam) {
var tr;
for (var i = 0; i < 2; i++) {
    tr = $('<tr/>');
    tr.append("<td>1 " + datam.id + " data l : "+ datam.length+"</td>");
    tr.append("<td>" + datam[i].name + "</td>");
    tr.append("<td>" + datam[i].latitude + "</td>");
    tr.append("<td>" + datam[i].longitude+ "</td>");
    $('#mytbl').append(tr);
}
函数绘图表(datam){
var-tr;
对于(变量i=0;i<2;i++){
tr=$('');
tr.append(“1”+datam.id+”数据l:“+datam.length+”);
tr.append(“+datam[i].name+”);
tr.append(“+datam[i].纬度+”);
tr.append(“+datam[i].经度+”);
$('mytbl')。追加(tr);
}

}你是如何隐藏你所说的邮件专栏的?因为如果您对DOM执行jQuery查询,然后对其使用“hide”,它将只对当前存在的元素生效,而不会对之后创建的元素生效。您可以使用一个变量来知道该列是否应该显示,并向相应的列添加一个类

var show=true;
函数addRow()
{
var tr=$('');//创建行
var td1=$('').text('new Col 1');//创建第一个Col
var td2=$('').text('new Col 2').addClass('optional');//创建第二个Col
if(!show)td2.addClass('hide');//如果show为false,则隐藏第二列
tr.append(td1);
tr.append(td2);
$('mytbl')。追加(tr);
}
函数toggleShow()
{
show=!show;
切换显示();
}
函数toggleDisplay(){
if(!show)$('#mytbl.optional').addClass('hide');
else$('#mytbl.optional').removeClass('hide');
}
.hide
{
显示:无;
}
表td{
边框:1px实心#000;
}

添加行
隐藏列
第1列
第2列

tr=$('')?你在这里干什么?@Eric创建一个表行,相当于
document.createElement(“tr”)。对于第二个问题,听起来您传递的是JSON而不是JS对象。您可能想要
JSON.parse(JSON)
@Kriggs谢谢您不知道syntaxI认为您还应该在问题中输入使用drawTable函数的代码。因为我们无法知道
datam
是一个对象还是一个数组或类似数组的对象