Javascript 服务调用后按列对表排序
在加载下表后,是否有方法对其进行排序? 我正在使用GoogleAPI获取distancematrix,但我希望表格按距离排序。然而,这必须在对谷歌的服务调用完成后完成 当服务完成时,我将只使用一个加载图标,然后在完成后显示表 HTML:Javascript 服务调用后按列对表排序,javascript,jquery,html,ajax,model-view-controller,Javascript,Jquery,Html,Ajax,Model View Controller,在加载下表后,是否有方法对其进行排序? 我正在使用GoogleAPI获取distancematrix,但我希望表格按距离排序。然而,这必须在对谷歌的服务调用完成后完成 当服务完成时,我将只使用一个加载图标,然后在完成后显示表 HTML: @foreach(Model.res中的var项) { › 加载。。。 卡丁车 } 计算站(); 函数CalculateInstance() { $(“.distance”)。每个(函数() { 变量名称=$(this).data(“名称”); var a
@foreach(Model.res中的var项)
{
›
加载。。。
卡丁车
}
计算站();
函数CalculateInstance()
{
$(“.distance”)。每个(函数()
{
变量名称=$(this).data(“名称”);
var adr=$(此).data(“地址”);
if(name!=null&&adr!=null)
getDistance(adr,name,$(this));
});
}
函数getDistance(地址、名称、obj)
{
var origin=new google.maps.LatLng(userLat,userLong);
if(userLat==0 | | userLong==0)console.log(“Klarte ikke hente din posisjon”);
var service=new google.maps.DistanceMatrixService();
service.getDistanceMatrix(
{
来源:[来源],
目的地:[地址],
travelMode:google.maps.travelMode.DRIVING,
避免:错误,
避免收费:错误
},功能(响应、状态)
{
var distance=响应。行[0]。元素[0]。距离;
if(distance)obj.html(distance.text);
else obj.html(“ike funnet”);
});
}
我想当所有内联距离请求完成时,您可以处理该事件,然后您就有了一个完整的表来进行排序
您可以使用一些iQuery插件进行就地表排序,例如:或中提到的sorterElements
如果您不想使用插件,只需编写一个排序函数并将表行作为对象输入其中,然后用排序数组生成的行替换表体。类似这样的内容(不使用jQuery),用于按任何列排序:
var objectArrayIndex = 0;
var myObjectArray = new Array();
init($(your_table_selector));
myObjectSort(myObjectArray,objectArrayIndex,sortColumn);
function myObject() {
for (var i = 0; i<myObject.arguments.length; i++)
this['n' + i] = myObject.arguments[i];
}
function init(tab) {
var obj;
var r, c, e;
for (r = 0; r < tab.rows.length; ++r) {
for (c = 0; c < tab.rows[r].cells.length; ++c) {
e = tab.rows[r].cells[c];
if(c == 0) {
myObjectArray[objectArrayIndex] = new myObject(e.innerHTML);
obj = myObjectArray[objectArrayIndex++];
}
else {
obj['n' + c] = e.innerHTML;
}
}
}
}
function myObjectSort(arrayName,length,column) {
// your preferred sorting algoritm run against arrayName['n'+column]
}
var objectArrayIndex=0;
var myObjectArray=新数组();
init($(您的表选择器));
myObjectSort(myObjectArray、objectArrayIndex、sortColumn);
函数myObject(){
对于(var i=0;i
var objectArrayIndex = 0;
var myObjectArray = new Array();
init($(your_table_selector));
myObjectSort(myObjectArray,objectArrayIndex,sortColumn);
function myObject() {
for (var i = 0; i<myObject.arguments.length; i++)
this['n' + i] = myObject.arguments[i];
}
function init(tab) {
var obj;
var r, c, e;
for (r = 0; r < tab.rows.length; ++r) {
for (c = 0; c < tab.rows[r].cells.length; ++c) {
e = tab.rows[r].cells[c];
if(c == 0) {
myObjectArray[objectArrayIndex] = new myObject(e.innerHTML);
obj = myObjectArray[objectArrayIndex++];
}
else {
obj['n' + c] = e.innerHTML;
}
}
}
}
function myObjectSort(arrayName,length,column) {
// your preferred sorting algoritm run against arrayName['n'+column]
}