javascript-jQuery分别按值排序
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-jQuery分别按值排序,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2500字,纯文字阅读大概需要4分钟。
内容图文
![javascript-jQuery分别按值排序](/upload/InfoBanner/zyjiaocheng/674/3ce74f4905244a20b1cba2adb32cab71.jpg)
我目前正在尝试创建商店定位器.我当前的代码从xml文件中获取商店信息,然后,如果它在给定的半径内,则将其放置在div中.
我的问题是,它只是按照xml中的存储顺序添加存储.因此,就我而言,这是字母顺序的.每个商店的名称,地址,网站和距离都有4个值.
我想要做的是将它们按从最短距离到最长的顺序放置在div中.我怎样才能做到这一点?
这是代码
function searchxml(origin, rad) {
$(data).find("marker").each(function () {
var $marker = $(this);
var name = $marker.attr("name");
var website = $marker.attr("website");
var address = $marker.attr("address").replace('<', '<').replace('>', '>');
var lat = $marker.attr("lat");
var lng = $marker.attr("lng");
var latlng = new google.maps.LatLng(lat, lng);
var destination = new google.maps.LatLng(lat, lng);
var distance = google.maps.geometry.spherical.computeDistanceBetween(origin, destination);
var miles = Math.round(distance * 0.000621371192);
if (miles <= rad) {
$('#storeInfo').prepend('<div class="storeLocation"><div class="storeLeft"><span class="storeTitle">' + name + '</span></br><p class="storeAddress">' + address + '</p><a href="' + website + '">' + website + '</a></div><div class="storeRight"><span class="storeDistance">Distance: ' + miles + ' miles</span><a href="http://maps.google.com/maps?saddr=' + address + '&daddr=' + origin + '" class="storeDirections">Map It</span></div><div class="clear"></div></div>').html();
$('#map_canvas').gmap('addMarker', {
'position': destination,
'bounds': true
}).click(function () {
$('#map_canvas').gmap('openInfoWindow', {
'content': name + '<br/>' + address
}, this);
});
} else {}
});
}
解决方法:
除了将新的div附加到您创建的位置(即在$(‘#storeInfo’).prepend(…)行上)之外,您还可以将它们及其与位置的距离一起存储在数组中,然后对其进行排序按距离排列,最后按排序顺序将这些新的div添加到storeInfo元素中.
例如
function searchxml(origin, rad) {
var stores = []; //array which will store divs and the distances..
$(data).find("marker").each(function () {
...
if (miles <= rad) {
var div = $('<div class="storeLocation"> ...');
//don't just add this straight away..
//store it in a simple object holding the new div
//and the distance and push it onto the array..
stores.push({ div: div, miles: miles });
$('#map_canvas').gmap('addMarker', {
...
} else {}
});
//sort to get the right order..
stores.sort(function(a,b){
return b.miles - a.miles; //smaller is better..
});
//now append them in the sorted order..
var storeInfo = $('#storeInfo');
$.each(stores, function(store){
storeInfo.append(store.div);
});
}
注意:这里我已经使用…来指示您应该在代码中放置什么内容,以使更改更容易看到.
内容总结
以上是互联网集市为您收集整理的javascript-jQuery分别按值排序全部内容,希望文章能够帮你解决javascript-jQuery分别按值排序所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。