jquery ajax load方法:只有一个请求多个元素?

嘿,我的页面上有10个“ul.rating”元素。 我想每分钟刷新一下这些元素。

var reload = 60000; var currentpage = window.location; setInterval(function() { $('ul.ratings').load(currentpage + " .ul.ratings >*", function() { //callback }); }, reload); 

现在我有以下两个问题。

  1. 我需要找到重新加载每个新元素。 现在我可能正在为我页面上的所有ul.ratings元素重新加载SAME ul.ratings元素。 所以必须有一些方法来使用index()或其他一些jquery方法用第一个ul.ratings元素重新加载第一个ul.ratings元素,并用第五个ul.ratings元素重新加载第五个ul.ratings元素。

  2. 整个事情可能是一个相当糟糕的方法,但我想在我的情况下没有更好的方法。 是否有可能只在ONCE上执行load-method并获取每个ul.ratings元素并替换正确的元素? 现在我正在进行加载调用,如果我的页面上有10个ul.ratings元素。

谢谢您的帮助!

您是否可以控制您调用的URL? 你能让它只返回你想要的数据吗? 在这种情况下,让它返回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()); }); }); 

我自己没有运行此代码。

我没有一个页面可以自己尝试这个,但大概是:

 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 > *") 

;)