1

我一直在尝试对日期文本和链接进行排序。在这个问题Use jQuery to Sort DIV based on Grandchild DIVS的帮助下,我能够走得很远。目前,日期被读取为文本字符串而不是日期字符串。我只需要弄清楚如何将文本转换为日期字符串。任何帮助,将不胜感激。

        `<script type='text/javascript'>
        $(document).ready(function() {
        function sortUsingNestedText(parent, childSelector, keySelector, caller) {
        var articles;

        var items = parent.children(childSelector).sort(function(a, b) {
            var vA = $(keySelector, a).text();
            var vB = $(keySelector, b).text();
            return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
        });

        var articles = $();
        items.each(function() {
            if ($(this).text().indexOf("articles") != -1) { //if it contains "articles"
                articles = articles.add($(this)); //adds to the articles jQuery object
                items = items.not($(this)); //and remove from items
            }
        });

        if (caller.data('order_by') == 'asc') {
            articles = articles.sort(function(a, b) {
                var vA = $(a).text();
                var vB = $(b).text();
                return (vA < vB) ? -1 : (vA > vB) ? 1 : 0;
            });
        }

        if (caller.data('order_by') == 'desc') { //alert('desc pattern');
            caller.data('order_by', 'asc');
            parent.append(items.get().reverse());
            parent.append(articles.get().reverse());
        } else { //alert('asc pattern');
            caller.data('order_by', 'desc');
            parent.append(articles);
            parent.append(items);
            }
        }

        $('#date').data("sortKey", "div.article-preview-date").data('order_by', 'desc');
        $('#name').data("sortKey", "div.article-preview").data('order_by', 'desc');

        $("#date").click(function() {
         $('.article-preview-left-col > .article-preview-date > span').contents().unwrap();
         $('.blog-year-month').remove();
         sortUsingNestedText($('#sort'), "article", $("#date").data("sortKey"), $(this));

        });

        $("#name").click(function() {
        $('.article-preview-left-col > .article-preview-date > span').contents().unwrap();
        $('.blog-year-month').remove();
        sortUsingNestedText($('#sort'), "article", $("#name").data("sortKey"), $(this));
        });


        }) 

        </script>
        </head>
        <body>


      <ul id="date-title-toggle">
        <li class="list-alpha" id="date"><a href="#">Date</a></li>
        <li class="list-omega" id="name"><a href="#">Title</a></li>
      </ul>


    <section id="sort">
       <span class="blog-year-month">2012</span>
      <article class="articles">
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">10</span> <span class="year">2011</span> </div>
           </div>
        <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/032012.html">Six in 10 Obese Adults Have Joint Pain</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

      <article class="articles">
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">31</span> <span class="year">2010</span> </div>
        </div>
         <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/012512.html">Hospital Stays Involving C. difficile Infections Leveled Off After 300 Percent Increase Since 1993</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

      <article class="articles"> 
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">30</span> <span class="year">2012</span> </div>
        </div>
         <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/012512.html">Hospital Stays Involving C. difficile Infections Leveled Off After 300 Percent Increase Since 1993</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

      <article class="articles">
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">15</span> <span class="year">2012</span> </div>
        </div>
         <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/012512.html">Hospital Stays Involving C. difficile Infections Leveled Off After 300 Percent Increase Since 1993</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

      <article class="articles">
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">27</span> <span class="year">2012</span> </div>
        </div>
        <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/011212.html">Most Health Care Costs Incurred by Few Americans</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

      <article class="articles">
        <div class="article-preview-left-col">
          <div class="article-preview-date"> <span class="month">January</span> <span class="day">25</span> <span class="year">2012</span> </div>
        </div>
        <div class="article-preview">
            <h1><a href="/news/newsroom/news-and-numbers/030712.html">Hospital Readmission Rates Higher for Chronic Conditions</a></h1>
            <!--?psx-end-slot ahrqTranslation?-->
          </div>

      </article>

`

4

0 回答 0