嘿 我的页面上有10个“ul.rating”元素。我想每分钟刷新一下这些元素。
var reload = 60000;
var currentpage = window.location;
setInterval(function() {
$('ul.ratings').load(currentpage + " .ul.ratings >*", function() {
//callback
});
}, reload);
现在我有以下两个问题。
我需要找到新的重新加载每个元素。现在我可能正在为我页面上的所有ul.ratings元素重新加载SAME ul.ratings元素。所以必须有一些方法来使用index()或其他一些jquery方法用第一个ul.ratings元素重新加载第一个ul.ratings元素,并用第五个ul.ratings元素重新加载第五个ul.ratings元素。
整个事情可能是一个相当糟糕的方法,但我认为在我的情况下没有更好的方法。是否有可能只在ONCE上执行load-method并获取每个ul.ratings元素并替换正确的元素?现在,如果我的页面上有10个ul.ratings元素,我正在进行加载调用。
感谢您的帮助!
答案 0 :(得分:2)
您是否可以控制您拨打的网址?你能让它只返回你想要的数据吗?在这种情况下,让它返回JSON或XML并使用该信息重新加载ul。
否则,您可以使用$ .get函数,在jquery中加载HTML并自己找到ul:
var ulorigs = $('ul.ratings');
$.get('url', function (data) {
var content = $(data);
$('ul.ratings', content).each(function(ind,elem) {
$(ulorigs.get(0)).html($(elem).html());
});
});
我自己没有运行此代码。
答案 1 :(得分:0)
我没有一个页面可以自己试试,但大概是:
var reload = 60000;
var currentpage = window.location;
setInterval(function() {
$('ul.ratings').each(function(i, el) {
$(this).load(currentpage + " ul.ratings:eq(" + i + ") > li", function() {
//callback
});
});
}, reload);
我认为您的主要问题不在于确定您要替换的内容。
这可能是一个非常糟糕的想法,因为最终你会谈到触发十次并异步加载页面10次。
我想这意味着总是:
$("body").load(currentpage + " body > *")
)