我正在尝试使用 jQuery 制作一个自我更新的元素。这是我的代码:
function chart_readyset() {
$.get("chart.php?live=true", function(data) {
if(data.replace(/[ \t\r]+/g,"").split('\n').join('') != $("#chart-wrapper").html().replace(/[ \t\r]+/g,"").split('\n').join('')) {
$("#chart-wrapper").fadeOut('fast').html(data).fadeIn('fast');
}
window.setTimeout(chart_readyset, 5000);
});
}
正如您所看到的,它从元素的 html 加载数据chart.php?live=true
并将其与元素的 html 进行比较,然后仅在实际更新数据时才更新它(具有闪烁效果)。我必须从 html 中删除所有空格。
此代码适用于除 IE 之外的所有浏览器。所以我发明了一种看起来更稳定优雅的新方法。使用 PHP,我生成一些哈希码并通过<meta>
标签传递它:
<meta id="hash" hash="25a4f466ee0b2f12fe505dd9a1151456">
所以现在我需要从响应 html 中提取这些数据。从 DOM 树中提取它非常容易:
$('#hash').attr('hash');
但是我不能对原始的 html 响应做同样的事情。我尝试先对其进行 DOM 化($(data).find('#hash').attr('hash')
),但它不起作用(在控制台日志中只有“未定义”)。我究竟做错了什么?