无法在jQuery中对日期排序

无法在jQuery中对日期排序,jquery,Jquery,我一直试图在jQuery中按升序/降序对日期进行排序,但没有成功。你知道哪里出了问题吗?这是我的密码: 相关HTML: <input class="btn" type="button" value="Sort Ascending" id="sortAsc"/> <input class="btn" type="button" value="Sort Descending" id="sortDesc"/> <div id="wrapper"> <

我一直试图在jQuery中按升序/降序对日期进行排序,但没有成功。你知道哪里出了问题吗?这是我的密码:

相关HTML:

<input class="btn" type="button" value="Sort Ascending" id="sortAsc"/>
<input class="btn" type="button" value="Sort Descending" id="sortDesc"/>

<div id="wrapper">
    <ul>
    <li class='item'><div id='activity_date'>01/10/2012</div>
    <div id='activity_box'>
    <div id='activity_text' class='windowClass2'>...text here...</div>
    </div></li><li class='item'><div id='activity_date'>04/10/2012</div>
    <div id='activity_box'>
    <div id='activity_text' class='windowClass2'>...text here...</div>
    </div></li><li class='item'><div id='activity_date'>10/10/2012</div>
    <div id='activity_box'>
    <div id='activity_text' class='windowClass2'>...text here...</div>
    </div></li><li class='item'><div id='activity_date'>16/10/2012</div>
    <div id='activity_box'>
    <div id='activity_text' class='windowClass2'>...text here...</div>
    </div></li>
    </ul>
</div>

  • 2012年10月1日 …文本在此。。。
  • 2012年10月4日 …文本在此。。。
  • 2012年10月10日 …文本在此。。。
  • 16/10/2012 …文本在此。。。

该代码有几个问题

  • 您在多个元素上使用相同的
    id

    若要修复此问题,请改用类值,或a,或任何允许在页面上出现多次的其他内容

  • 您正在对jQuery实例调用
    sort
    。jQuery。它可能有一个未记录的,但如果是这样,你不知道它做什么。假设它将重新排列DOM元素肯定是没有意义的

    要修复它,您必须为此编写自己的函数(这并不复杂),或者找到一个插件来为您执行此操作

  • 即使
    sort
    有效,您传递到
    newdate(string)
    中的日期字符串的格式也是
    20/10/2012
    17/10/2012
    ,诸如此类。这不是一种文档化的
    新日期(字符串)
    格式。唯一的字符串格式是的简化形式,看起来不是这样的。事实上,
    新日期(“20/10/2012”)
    在Chrome和其他浏览器上都失败了

    要解决这个问题,你需要用另一种方式来确定日期。您可以将自历元值起的毫秒存储为,然后直接使用它。或者您可以自己解析日期字符串。如果它们总是采用那种
    dd/mm/yyyy
    格式,那么将各个部分解析为数字是很简单的,然后您可以将生成的年、月和日的数字传递到中。(请记住,月份从
    0
    =一月开始。)

  • 你在一开始就把一个结束的
  • 放进去,没有开始的
  • 要解决此问题,请不要这样做。:-)


    一个HTML在这里,是的,ID在那里复制。在这种情况下,使用CSS类来标记项目就可以了。您能给我举一个关于jQuery的例子吗?@methuselah似乎仍然不起作用:您更新的小提琴仍然在多个位置使用相同的
    id
    值。我再清楚不过了:您不能在多个地方拥有相同的
    id
    值,它根本不起作用。@t.J.Crowder仍然没有运气>。有什么我遗漏的吗?@methuselah:好吧,你在调用jQuery实例的
    sort
    ,它不是数组,jQuery没有记录
    sort
    函数。所以这是个问题。(可能有一个未文档化的函数——不要使用未文档化的函数。)更重要的是,您的fiddle没有加载jQuery,这从一开始就是一个问题。因此,A)加载库,B)仅使用其文档化的功能,特别是,请注意jQuery不提供重新排序元素的
    排序
    函数。始终在问题本身中发布相关代码和标记,而不仅仅是链接。叹气好的,我已经为您完成了。但是在前面的278个问题之后,真的,你应该自己做这件事。
    
    <input class="btn" type="button" value="Sort Ascending" id="sortAsc"/>
    <input class="btn" type="button" value="Sort Descending" id="sortDesc"/>
    
    <div id="wrapper">
        <ul>
        <li class='item'><div id='activity_date'>01/10/2012</div>
        <div id='activity_box'>
        <div id='activity_text' class='windowClass2'>...text here...</div>
        </div></li><li class='item'><div id='activity_date'>04/10/2012</div>
        <div id='activity_box'>
        <div id='activity_text' class='windowClass2'>...text here...</div>
        </div></li><li class='item'><div id='activity_date'>10/10/2012</div>
        <div id='activity_box'>
        <div id='activity_text' class='windowClass2'>...text here...</div>
        </div></li><li class='item'><div id='activity_date'>16/10/2012</div>
        <div id='activity_box'>
        <div id='activity_text' class='windowClass2'>...text here...</div>
        </div></li>
        </ul>
    </div>