我正在尝试使用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);
});
}
正如您所看到的,它从chart.php?live=true
加载数据并将其与元素的html进行比较,然后仅在实际更新数据时更新它(具有闪烁效果)。我不得不从html中删除所有空格。
此代码适用于除IE以外的所有浏览器。所以我发明了一种看似更稳定,更优雅的新方法。使用PHP,我生成一些哈希码并将其传递给<meta>
标签:
<meta id="hash" hash="25a4f466ee0b2f12fe505dd9a1151456">
所以现在我需要从响应html中提取这些数据。从DOM树中提取它非常容易:
$('#hash').attr('hash');
但我不能用原始的html响应做同样的事情。我首先尝试使用DOM-ify($(data).find('#hash').attr('hash')
),但它不起作用(在控制台日志中只有“未定义”)。我做错了什么?
答案 0 :(得分:0)
使用它:
$(data).filter('#hash').attr('hash');
过滤器():
将匹配元素集合减少到与选择器匹配的元素或通过函数测试。
更多演示和示例: