这是我的第一个问题,英语不是我的主要语言,所以......如果我犯了任何语法错误,请抱歉!
我有一个非常简单的PHP脚本,可以回显Mysql数据库中<ul>
个地址。
这是一个用其他软件的数据制作的数据库,所以我没有存储Lat / Lon。
我可以确定我使用Google API点击的地址与我当前位置的距离,并使用google.maps.Geocode
将地址转换为坐标,然后使用google.maps.geometry.spherical.computeDistanceBetween(new google.maps.LatLng(lat,lon), new google.maps.LatLng(lat2,lon2)
计算我们之间的距离,以米为单位收到结果。
但我如何根据距离对<ul>
进行排序?用php + js可以吗?
我知道这可能是一件很简单的事情,但我只是网络开发的初学者,我还想不出来。 = /
答案 0 :(得分:0)
这样您就可以对UL列表进行排序。
function sortUnorderedList(ul, sortDescending) {
if (typeof ul == "string")
ul = document.getElementById(ul);
var lis = ul.getElementsByTagName("LI");
var vals = [];
for (var i = 0, l = lis.length; i < l; i++)
vals.push(lis[i].innerHTML);
vals.sort();
if (sortDescending)
vals.reverse();
for (var i = 0, l = lis.length; i < l; i++)
lis[i].innerHTML = vals[i];
}
var desc = false;
document.getElementById("test").onclick = function() {
sortUnorderedList("list", desc);
desc = !desc;
return false;
}
&#13;
<input type="button" id="test" value="Sort List (click again to reverse)" />
<ul id="list">
<li>658.7599605058606</li>
<li>658.7599605058602</li>
<li>658.7599605058607</li>
<li>657.7599605058606</li>
<li>659</li>
</ul>
&#13;