我创建了一个3语言网站,我需要对所有3种语言的评论进行排序,这些评论在每种语言的页面上都可见。 http://www.polinapasztircsak.com/guestbook/
我尝试使用jQuery .load
方法加载,但是它有效,但问题是它在div
中加载了单独的语言(我不知道加载和追加它的其他方式)我可以不要将评论li
排在div
之外。这是代码:
var commEng = $('<div></div>').load('../guestbook/ .comment');
var commHun = $('<div></div>').load('../vendegkonyv/?lang=hu .comment');
var commIta = $('<div></div>').load('../libro-ospiti/?lang=it .comment');
$(".commentlist").empty().append(commEng).append(commHun).append(commIta);
您是否有其他建议如何加载li
,我将它们放在同一个ul
中,然后用哪个方法或插件进行排序。
答案 0 :(得分:1)
您可以尝试使用$.get
或任何其他ajax函数来加载评论,然后使用Javascript的sort
函数对其进行排序。代码看起来像这样:
var loaded = 0,
sites = 3,
comments = [];
function getComments(url){
$.get(url, function(data){
comments[loaded++] = ($(data).find('.comment'));
if(loaded === sites){
var insert = comments[0];
for(var i = 1; i < comments.length; i++){
insert = insert.add(comments[i]);
}
$('.commentlist').append(insert.sort(function(a, b){
var dateA = new Date($.trim($(a).find('.comment-meta:first a').text()).replace('at', '') + ' GMT'),
dateB = new Date($.trim($(b).find('.comment-meta:first a').text()).replace('at', '') + ' GMT');
return dateB.getTime() - dateA.getTime();
}));
}
});
}
getComments('../guestbook/');
getComments('../vendegkonyv/?lang=hu');
getComments('../libro-ospiti/?lang=it');
这将通过传递一个函数来对通过ajax与sort()
收到的jQuery元素进行排序,该函数将比较从注释元素中删除的注释的日期。另请注意,div
无序列表中的ul
s无效HTML。