2011-08-17 16 views
0

不知道我在做什么错。我正在尝试对结果进行排序。Javascript排序

function makeSidebar() { 
    var html = ""; 
    for (var i=0; i<gmarkers.length; i++) { 
     if (!gmarkers[i].isHidden()) { 
     html += '<a href="javascript:myclick(' + i + ')">' + gmarkers[i].myteam + '<\/a><br>'; 
     } 
    } 
    document.getElementById("side_bar").innerHTML = html; 
} 

我试过html.sort();和几个不同的想法。

感谢

+0

你想排序什么? 'myteam'的值还是只是HTML字符串? – pimvdb

+1

你想要分类什么?我没有看到相关的代码 – hungryMind

回答

0

html在你的代码是一个字符串和字符串没有排序功能。不过阵列,所以你应该先排序球队,然后显示它们:

function compare(a, b) { 
    if (a.myteam < b.myteam) return -1; 
    if (a.myteam > b.myteam) return 1; 
    return 0; 
} 

gmarkers.sort(compare); 

function makeSidebar() { 
     var html = ""; 
     for (var i=0; i<gmarkers.length; i++) { 
      if (!gmarkers[i].isHidden()) { 
      html += '<a href="javascript:myclick(' + i + ')">' + gmarkers[i].myteam + '<\/a><br>'; 
      } 
     } 
     document.getElementById("side_bar").innerHTML = html; 
     } 
+0

有趣的是,尝试了代码,仍然是相同的结果。 a.myteam或b.myteam是否需要指定? TIL我是一个主要的javascript新手... – mrlayance

+0

我想他们是指定,因为你在你的代码中使用'gmarkers [i] .myteam'?你能发布gmarkkers的完整结构吗? –

+0

'//创建标记并设置事件窗口的函数 函数createMarker(point,team,html,category)var marker = new GMarker(point,gicons [category]); // ===将类别和名称信息存储为标记属性=== marker.mycategory = category; marker.myteam = team; (标记,“click”,function(){ marker.openInfoWindowHtml(html); }); gmarkers.push(marker); return marker; }' – mrlayance