Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/440.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 服务调用后按列对表排序_Javascript_Jquery_Html_Ajax_Model View Controller - Fatal编程技术网

Javascript 服务调用后按列对表排序

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

在加载下表后,是否有方法对其进行排序?

我正在使用GoogleAPI获取distancematrix,但我希望表格按距离排序。然而,这必须在对谷歌的服务调用完成后完成

当服务完成时,我将只使用一个加载图标,然后在完成后显示表

HTML:


@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]
}