我正在尝试获取 .XML 文件的内容,然后按字母顺序显示列表。
下面是 XML 文档的设置:
<markers>
<marker school="University of One" names="Bob One, Bob Two, Bob Three" lat="32.235260" lng="-130.980506" />
<marker school="University of One" names="Bob One, Bob Two, Bob Three" lat="32.235260" lng="-130.980506" />
</markers>
然后我使用这个 jQuery 获取该文件 (seniors.xml) 的内容:
downloadUrl("seniors.xml", function(doc) {
var xmlDoc = xmlParse(doc);
var markers = xmlDoc.documentElement.getElementsByTagName("marker");
for (var i = 0; i < markers.length; i++) {
// obtain the attribues of each marker
var lat = parseFloat(markers[i].getAttribute("lat"));
var lng = parseFloat(markers[i].getAttribute("lng"));
var point = new google.maps.LatLng(lat,lng);
var names = markers[i].getAttribute("names");
var school = markers[i].getAttribute("school");
var html="<b class="+'school-name'+">"+school+"</b><br><p class="+'student-names'+">"+names+"</p><br>";
// create the marker
var marker = createMarker(point,school+" "+names,html);
}
markerCluster = new MarkerClusterer(map, gmarkers);
// put the assembled side_bar_html contents into the side_bar div
document.getElementById("side_bar").innerHTML = side_bar_html;
});
}
我在另一个函数中定义了 side_bar_html 将做什么(这会存储列表并将信息放入侧边栏中)。
side_bar_html += '<div id="'+linkid+'" class="'+'sidebar-link-box'+'"><div class="'+'padded'+'"><a href="javascript:myclick(' + (gmarkers.length-1) + ')" class="sidebar-link">' + html + '<\/a><\/div><\/div>';
我的 HTML 如下所示。请注意,未设置表单的操作,因为我有一个 jQuery keyup 事件来排队搜索。
<form id="live-search" action="">
<input type="text" class="text-input" id="filter" value="" size="50" placeholder="Search for student/school" tabindex="1"/>
<span id="filter-count"></span>
</form>
<!-- display results -->
<div id="side_bar"></div>
</div>
一切正常;结果显示,但我不确定如何使它们按字母顺序显示。我应该在将列表放入 side_bar_html 之前/之后运行字母函数吗?