Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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
Jquery Div排序。包含来自另一页的内容_Jquery_Sorting_Html_Get - Fatal编程技术网

Jquery Div排序。包含来自另一页的内容

Jquery Div排序。包含来自另一页的内容,jquery,sorting,html,get,Jquery,Sorting,Html,Get,我正在尝试以下方法: 从另一个页面获取内容,然后对其进行排序。 我在脚本中看到内容时遇到问题 JQUERY: <script type="text/javascript"> $(document).ready( function(){ $.get('test.php', function(receivedHtml) { var neededHtml=$(receivedHtml).fin

我正在尝试以下方法:

从另一个页面获取内容,然后对其进行排序。 我在脚本中看到内容时遇到问题

JQUERY:

 <script type="text/javascript">
        $(document).ready(
            function(){
            $.get('test.php', function(receivedHtml) {
                var neededHtml=$(receivedHtml).find('.news_date-1').html();
                $('#news_date-1').append(neededHtml);
            });
            $.get('test.php', function(receivedHtml) {
                var neededHtml=$(receivedHtml).find('.news_date-2').html();
                $('#news_date-2').append(neededHtml);
            });
            $.get('test.php', function(receivedHtml) {
                var neededHtml=$(receivedHtml).find('.news_date-3').html();
                $('#news_date-3').append(neededHtml);
            });
            function sortDescending(a, b) {
             var date1  = $(a).find(".year").text();
               date1 = date1.split('-');
             date1 = new Date(date1[2], date1[1], date1[0]);
             var date2  = $(b).find(".year").text();
               date2= date2.split('-');
             date2= new Date(date2[2], date2[1], date2[0]);

             return date1 < date2 ? 1 : -1;
            };
            $('#all_elements .news-item').sort(sortDescending).appendTo('#all_elements');
        });         

    </script>
TEST.php

<div class="news_date-1" title="01 - Nieuws datum">20-11-2009</div>
<div class="news_date-2" title="02 - Nieuws datum">30-11-2012</div>
<div class="news_date-3" title="03 - Nieuws datum">01-05-2000</div>
Destenation.html

<div id="all_elements">
<div class="news-item">
    <div id="news_date-1" class="year"></div>
</div>  

<div class="news-item">
    <div id="news_date-2" class="year"></div>
</div>

<div class="news-item">
    <div id="news_date-3" class="year"></div>
</div>
</div>
他自己的分类很好,也就是说,当我把一个日期直接输入到div时 但是当我把它和$get一起使用时,它就不起作用了


有什么帮助吗?

您不必三次请求同一页面。相反,使用一个请求并对每个操作使用响应

确保函数在相关作用域中可用。当在$document.readyfunction{}中定义函数时,$document.ready包装器之外的代码无法使用该函数

笔记: neededHtml.find.news\u date-1相当于$.news\u date-1,neededHtml .sort函数的返回值不应为-1或1。相反,将这两个值彼此相减。 $EenTwee.html返回第一个元素内的html:Een。必须先将html附加到容器中,然后才能使用。按预期查找:$.appendhtml $…appendhtml-变量html可以是字符串,也可以是JQuery/DOM对象。除非要创建元素的副本,否则在追加之前不必使用.html。 小提琴:

优化代码:
这似乎不起作用。。。它将所有内容放在最后一个分区中,但没有排序。。。
$(document).ready(function(){
        function sortDescending(a, b) {
            var date1 = $(".year", a).text().split("-");
            date1 = new Date(date1[2], date1[1], date1[0]);
            var date2 = $(".year", b).text().split("-");
            date2 = new Date(date2[2], date2[1], date2[0]);
            return date1 - date2;
            /* date1 - date2 = 2000, 2009, 2012. To get the reverse order, use:
             return date2 - date1;
            */
        };
        //
        $.get('test.php', function(html) {
            var neededHtml = $("<div>").append(html);
            var neededHtml1 = $('.news_date-1', neededHtml);
            $('#news_date-1').append(neededHtml1);
            var neededHtml2 = $('.news_date-2', neededHtml);
            $('#news_date-2').append(neededHtml2);
            var neededHtml3 = $('.news_date-3', neededHtml);
            $('#news_date-3').append(neededHtml3);
            $('#all_elements .news-item').sort(sortDescending).appendTo('#all_elements');

        });
});