Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/88.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 根据子元素值对列表itmes进行排序_Javascript_Html_Sorting_Date_Logic - Fatal编程技术网

Javascript 根据子元素值对列表itmes进行排序

Javascript 根据子元素值对列表itmes进行排序,javascript,html,sorting,date,logic,Javascript,Html,Sorting,Date,Logic,有多个li标记。在这些li标记中有一个span元素,其值为一个月。我想要的是使用li标记中span元素的month文本值对li标记进行排序 比如,;如果有li标记,并且li标记内有span,其中December作为其innerHTML,该li标记应位于列表底部,因为December是一年的最后一个月 下面是html代码 2018 也许 十一月 九月 十一月 施工月数=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月

有多个
li
标记。在这些
li
标记中有一个
span
元素,其值为一个月。我想要的是使用
li
标记中
span
元素的month文本值对
li
标记进行排序

比如,;如果有
li
标记,并且
li
标记内有
span
,其中
December
作为其
innerHTML
,该
li
标记应位于列表底部,因为
December
是一年的最后一个月

下面是html代码

    2018
  • 也许
  • 十一月
  • 九月
  • 十一月
施工月数=[“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月”];

我已经尝试了许多使用javascript实现这一点的方法,但是我的logix已经用完了。请随意询问更多细节。

一种方法是使用实际日期和构造函数。通过这种方式,您可以相互评估确切的日期,并在排序函数中使用它们。您已经有了月份,但在本例中,年份也是构建有效日期所必需的。最低要求是一年。在这种情况下,我们需要年份和月份

我使用了HTML5元素,它让你的约会更具语义。它有一个
datetime
属性,屏幕阅读器和搜索引擎可以读取该属性以了解日期,例如
NOV
。我们可以使用
datetime
属性中的值来使用构造函数创建新的日期

首先选择所有元素并使用或排列语法
[…elements]
从结果创建数组。这需要使用
排序
方法,该方法在所有数组中都可用

在该方法中,将
datetime
属性中的值相互比较以创建顺序。现在已经设置了顺序,我们希望将其应用于文档。再次循环查看日期,并使用Flexbox的
order
属性根据排序数组的索引设置正确的顺序

您还需要添加
display:flex
弹性方向:在
元素上的列
,使
  • 元素与
    顺序
    属性一起工作

    如果我不清楚或者你还有其他问题,请告诉我

    //获取元素并将它们放入数组中。
    const dates=Array.from(document.querySelectorAll(“.gallery mlti date”);
    //按日期排序。从一月到十二月。
    排序((a,b)=>新日期(a.dateTime)-新日期(b.dateTime));
    //按已排序列表的索引设置列表项的顺序。
    dates.forEach((日期,索引)=>date.parentElement.style.order=index)
    
    。时间线项目{
    显示器:flex;
    弯曲方向:立柱;
    }
    2018
    
    • 也许
    • 十一月
    • 九月
    • 十一月

    一种方法是使用实际日期和构造函数。通过这种方式,您可以相互评估确切的日期,并在排序函数中使用它们。您已经有了月份,但在本例中,年份也是构建有效日期所必需的。最低要求是一年。在这种情况下,我们需要年份和月份

    我使用了HTML5元素,它让你的约会更具语义。它有一个
    datetime
    属性,屏幕阅读器和搜索引擎可以读取该属性以了解日期,例如
    NOV
    。我们可以使用
    datetime
    属性中的值来使用构造函数创建新的日期

    首先选择所有元素并使用或排列语法
    […elements]
    从结果创建数组。这需要使用
    排序
    方法,该方法在所有数组中都可用

    在该方法中,将
    datetime
    属性中的值相互比较以创建顺序。现在已经设置了顺序,我们希望将其应用于文档。再次循环查看日期,并使用Flexbox的
    order
    属性根据排序数组的索引设置正确的顺序

    您还需要添加
    display:flex
    弹性方向:在
    元素上的列
    ,使
  • 元素与
    顺序
    属性一起工作

    如果我不清楚或者你还有其他问题,请告诉我

    //获取元素并将它们放入数组中。
    const dates=Array.from(document.querySelectorAll(“.gallery mlti date”);
    //按日期排序。从一月到十二月。
    排序((a,b)=>新日期(a.dateTime)-新日期(b.dateTime));
    //按已排序列表的索引设置列表项的顺序。
    dates.forEach((日期,索引)=>date.parentElement.style.order=index)
    
    。时间线项目{
    显示器:flex;
    弯曲方向:立柱;
    }
    2018
    
    • 也许
    • 十一月
    • 九月
    • 十一月
    试试:

    2018
    
    • 也许
    • <