如何通过jQuery构建JSON并构建HTML
初学者在这里试图找出构造一些JSON的最佳方法并输出以下嵌套的
下面的每个粗体项都是JSON中的值。 我如何构建JSON,然后如何使用jQuery构建DOM结构? 任何帮助非常感谢。
- https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Topic 1
<li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item1a "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item1a "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Lorem https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 1a https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Ipsum
<li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item1b "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item1b "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Dolor https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 1b https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Sit
https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Topic 2 <li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item2a "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item2a "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Lorem https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 2a https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Ipsum
<li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item2b "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item2b "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Dolor https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 2b https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Sit
- https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Topic 1
- <li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item1a "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item1a "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Lorem https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 1a https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Ipsum
<li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item1b "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item1b "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Dolor https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 1b https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Sit
- <li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item2a "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item2a "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Lorem https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 2a https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Ipsum
<li id=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/foo_item2b "> <a href=" https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/destination_Item2b "> https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/ https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Dolor https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Item 2b https://stackoverflow.com/questions/3375035/how-to-structure-json-and-build-html-via-jquery/Sit
我最近成为了mustache.js的忠实粉丝。
http://github.com/janl/mustache.js/
编辑:
如果我稍微调整calvinf的JSON格式,那么这是使用mustache.js的一个例子:
如果你想要一个JavaScript模板库的速度基准测试,我发现这个链接很有用:
http://www.viget.com/extend/benchmarking-javascript-templating-libraries/
您可以使用类似DOM的方法来设置属性和文本内容,以避免使用简单的html()
设置和模板系统中更天真的HTML转义问题。 例如,使用jQuery 1.4和jSON输入沿着calvinf的例子:
var ul0= $(''); $.each(topics, function() { var li0= $('- ', {text: this.title}); var ul1= $('
'); $.each(this.items, function() { ul1.append($('- ', {id: 'foo_'+this.title}) .append($('', {href: this.link, text: this.text}) .append($('', {text: this.data0})) .append($('', {text: this.data1})) .append($('', {text: this.data2})) ) ); }); li0.append(ul1); ul0.append(li0); });
第一个建议是看看JSON网站 。 它有一些JavaScript中的JSON代码示例。
如果你用JSON构建整个东西,我会这样做。
var topics = { topic1: { title : "Topic 1", items : [ {title: "1a", link: "http://www.example.com/", text: "Link Text or HTML"}, {title: "1b", link: "http://www.example.com/", text: "Link Text or HTML"} ] }, topic2: { title : "Topic 2", items : [ {title: "2a", link: "http://www.example.com/", text: "Link Text or HTML"}, {title: "2b", link: "http://www.example.com/", text: "Link Text or HTML"} ] } };
如果您只需要信息的一部分,您可以采用不同的方式,但这应该为您提供一些东西。
要使用这些值更新DOM,可以从JSON对象循环访问相应的数组,然后填充值。 使用jQuery .html(htmlString)函数 。
我希望这可以帮助你开始。
对于这种事情我会推荐优秀的underscore.js的template
函数。