我正在拉入一些远程 xml 并对其进行解析。该数据填充了一个表,我似乎无法更新它。使用 setTimeout,我可以使用 .append() 继续添加到表中 - 不使用新数据替换旧数据,或者在应该有多个使用 jQuery 的 .html() 操作时只能显示一行。
$(function () {
site = 'http://ec2-54-201-216-39.us-west-2.compute.amazonaws.com/testc/WebService.asmx/GetLastTickers';
var yql = 'http://query.yahooapis.com/v1/public/yql?q=' + encodeURIComponent('select * from xml where url="' + site + '"') + '&format=xml&callback=?';
function btcData() {
$.getJSON(yql, function (data) {
var xml = $.parseXML(data.results[0]),
xmlDoc = $.parseXML($(xml).find("string").text()),
$xml = $(xmlDoc);
$xml.find("Ticker").each(function(){
var buyPrice = $(this).find("BuyPrice").attr("Value");
var sellPrice = $(this).find("SellPrice").attr("Value");
var volume = $(this).find("Volume").attr("Value");
var tr = $('<tr/>');
tr.append("<td data-th=\'Buy Price\'>" + buyPrice + "</td>");
tr.append("<td data-th=\'Sell Price\'>" + sellPrice + "</td>");
tr.append("<td data-th=\'Volume\'>" + volume + "</td>");
//using the first option will only show one row, but update
//$('#BuyOrders').html(tr)
$('#BuyOrders').append(tr);
});
//this will keep adding to table
setTimeout(btcData, 1000);
});
}
btcData();
});
我在这里有一个工作小提琴。xml 中的数据可以从“站点”变量中查看。我想让它更新表格,就像 .append() 版本一样,但不是添加到它,而是每次都覆盖它。1 秒仅用于演示。