我的页面上有这个HTML表格,我希望用这个JSON URL中的数据动态填充它:http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=1055
老实说,我不知道最好的方法,但从我发现的JSON模板似乎是我应该使用的。我发现了使用Javascript帮助将JSON数据转换为HTML的“Pure.js”(http://beebole.com/pure/)和“Mustache.js”(https://github.com/janl/mustache.js)。我无法弄清楚如何使用这些来加载URL中的数据,该示例都使用静态字符串。我可以/我应该使用AJAX,jQuery吗?来自JSON网址的数据每天都会更改。
我在下面的HTML中使用{...}的地方是我希望加载网址的数据的地方。
如果有人能指出我如何做到这一点的正确方向,我很感激,并希望为我提供一个代码示例,以帮助我实现这一目标。
<div class="item-details">
<div>
<h5>
{item.name}
</h5>
<p>Aaaarrrghhh ... I'm a monster.</p></div>
<h6>Pricing Information:</h6>
<table>
<tbody>
<tr>
<th>Current guide price:</th>
<td>{item.current.price}</td>
</tr>
<tr>
<th>Today's Change:</th>
<td class="{item.today.trend}">{item.today.price}</td>
</tr>
</tbody>
<tr>
<th>30 Day Change:</th>
<td class="{item.day30.trend}">{item.day30.change}</td>
</tr>
<tr>
<th>90 Day Change:</th>
<td class="{item.day30.trend}">{item.day90.change}</td>
</tr>
<tr>
<th>180 Day Change:</th>
<td class="{item.day30.trend}">{item.day180.change}</td>
</tr>
</table>
</div>
</div>
答案 0 :(得分:0)
远端页面http://code.google.com/p/distal上的演示似乎实现了您在上面尝试做的事情。
答案 1 :(得分:0)
我不确定你是否还在寻找例子。如果有,那就有一个给你。
pure.js
用作jQuery
插件,因此您可以使用jQuery
ajax
函数从http://services.runescape.com/...
加载数据。
$(function(){
var directives = {
'h5' : 'item.name',
'td.currentPrice' : 'item.current.price',
'td.currentPrice@class' : function() {return "";},
'td.todayTrend' : 'item.today.price',
'td.todayTrend@class' : 'item.today.trend',
'td.day30Trend' : 'item.day30.change',
'td.day30Trend@class' : 'item.day30.trend',
'td.day90Trend' : 'item.day90.change',
'td.day90Trend@class' : 'item.day90.trend',
'td.day180Trend' : 'item.day180.change',
'td.day180Trend@class' : 'item.day180.trend'
};
$.ajax({
url: 'http://services.runescape.com/m=itemdb_rs/api/catalogue/detail.json?item=1055',
dataType: 'jsonp',
success: function(data) {
$('div.item-details').render(jsonData, directives);
}
});
});
如果您的JSON文档的结构没有改变, pure.js
指令将正常工作。目前如下:
{"item":{"icon":"...","icon_large":"...","id":1055,"type":"...","typeIcon":"...","name":"...","description":"...","current":{"trend":"neutral","price":"131.2m"},"today":{"trend":"positive","price":"+1.1m"},"day30":{"trend":"positive","change":"+11.0%"},"day90":{"trend":"positive","change":"+14.0%"},"day180":{"trend":"positive","change":"+32.0%"},"members":"false"}}
我还在HTML模板中添加了一些小的更改,以简化pure.js指令模型。请记住,最终的HTML应该如预期的那样。
<div class="item-details">
<div>
<h5>{item.name}</h5>
<p>Aaaarrrghhh ... I'm a monster.</p>
</div>
<h6>Pricing Information:</h6>
<table>
<tbody>
<tr>
<th>Current guide price:</th>
<td class="currentPrice">{item.current.price}</td>
</tr>
<tr>
<th>Today's Change:</th>
<td class="todayTrend">{item.today.price}</td>
</tr>
</tbody>
<tr>
<th>30 Day Change:</th>
<td class="day30Trend">{item.day30.change}</td>
</tr>
<tr>
<th>90 Day Change:</th>
<td class="day90Trend">{item.day90.change}</td>
</tr>
<tr>
<th>180 Day Change:</th>
<td class="day180Trend">{item.day180.change}</td>
</tr>
</table>
</div>