Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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 在jQuery/Js中,相对于其内部数据对数组进行排序_Javascript_Jquery_Arrays_Sorting - Fatal编程技术网

Javascript 在jQuery/Js中,相对于其内部数据对数组进行排序

Javascript 在jQuery/Js中,相对于其内部数据对数组进行排序,javascript,jquery,arrays,sorting,Javascript,Jquery,Arrays,Sorting,有没有办法在sort()方法中指定应作为参考的参数 例如: 我有一个元素数组,。,其中的参数为:date=Wed Apr 20 2016 00:00:00 GMT+0200(CEST)(例如) 现在,假设我有多个日期不同的,我希望它们按时间顺序排序。首先我用它们做一个数组。然后我尝试对它们进行排序,但我不知道如何或甚至是否可以指定参数 差不多 $date = $.makeArray($('#divRss li')) $date.sort(function(a,b) { return n

有没有办法在
sort()
方法中指定应作为参考的参数

例如: 我有一个元素数组,
  • ,其中的参数为:
    date=Wed Apr 20 2016 00:00:00 GMT+0200(CEST)
    (例如)

    现在,假设我有多个日期不同的
  • ,我希望它们按时间顺序排序。首先我用它们做一个数组。然后我尝试对它们进行排序,但我不知道如何或甚至是否可以指定参数

    差不多

    $date = $.makeArray($('#divRss li'))
    $date.sort(function(a,b) { 
        return new Date(a.date).getTime() - new Date(b.date).getTime() 
    });
    
    其中日期应为
    数据(“日期”)


    这里有一个用于测试/示例目的的提琴:

    给定您提供的HTML,没有带有
    date
    属性的元素。我能看到的唯一日期是每个
    li
    .itemDate
    元素的值。您可以修改
    sort()
    以使用此值。运行
    sort()
    后,可以按排序顺序将
    li
    重新附加到其父元素。还要注意的是,您不需要在jQuery对象上使用
    $.makeArray()
    ,并且
    #divRss
    不存在(尽管我假设您的示例HTML中缺少这一点)

    说了这么多,试试这个:

    $('.feedEkList li').sort(function(a, b) {
        var aDate = $(a).find('.itemDate').text();
        var bDate = $(b).find('.itemDate').text();
        return new Date(bDate).getTime() - new Date(aDate).getTime();
    }).appendTo('.feedEkList');
    


    注意:这是按日期降序排列的。若要将其更改为升序,请从
    aDate
    中减去
    bDate

    我知道了!!谢谢你,我今天向你学习了!Ps:当我指的是日期时,它是以下内容的输出:
    $('li').each(function(){console.log($(this.data('date'))})
    没问题,很乐意帮助