【问题标题】:jQuery template issue with JSON dataJSON数据的jQuery模板问题
【发布时间】:2013-04-11 22:19:01
【问题描述】:

我正在使用 jQuery 模板,它采用 JSON 数据来创建表。这段代码工作正常。但是,当我尝试围绕此代码创建一个函数并将 JSON 数据传递给它时,我从 AJAX 请求中获得,它会在控制台中显示值,而不是在表中。带有虚拟数据的工作代码是:

var json = [{"class":12,"marks":"500","marks1":"200","marks2":"300"},{"class":11,"marks":"200","marks1":"300","marks2":"400"}]

$.template('kList','<tr title="${class}"><td>${marks}</td><td>${marks1}</td><td>${marks2}</td></tr>');  

for(var i=0; i<json.length; i++){   
    $.tmpl('kList',json[i]).appendTo("#table1")
}

这是我在函数中扭曲上层代码并将 JSON 数据作为参数传递的代码,当我使用 console.log(json) 打印它但不填充表格时,该参数在控制台中显示值。 JSON 参数具有与上述代码相同的 JSON 数据。

function dataTable(json){
    console.log(json); // here json values are appearing in the console
    $.template('kList','<tr title="${class}"><td>${marks}</td><td>${marks1}</td><td>${marks2}</td></tr>');  

    for(var i=0; i<json.length; i++){   
        $.tmpl('kList',json[i]).appendTo("#table1")
    }
}

请帮帮我,因为我不知道这段代码有什么问题。提前致谢。

【问题讨论】:

    标签: json jquery jquery-templates


    【解决方案1】:

    您的json 参数是一个字符串。您应该使用 $.parseJSON(json) 将其转换为对象。

    查看this 了解转化详情。

    【讨论】:

    • 它在控制台上给我一个响应为 [Object, Object] 并且我已经使用了 $.parseJSON(json) 所以参数 json 是使用 $.parseJSON(json) 后的输出。您还有其他建议吗?或者您是否发现此代码中还有其他错误?
    • @Sau:所以检查json[0].class 是否有价值和反馈。
    • 我试过 console.log(json[0].class);并在控制台中显示未定义,但是当我执行 console.log(json[0]);然后它显示所有值。你能让这段代码工作吗?我真的很感谢你
    • @Sau:我认为你的 json 有问题。我不知道“然后它显示所有值”是什么意思。写日志。
    • @Sau:关于您答案第一部分中的 json 字符串,我在这里进行了测试,查看并比较 json 字符串:jsfiddle.net/oliol/zWJeu
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多