Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/76.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 通过使用日期(按日期)在元素之间插入元素_Jquery_Sorting_Date_Insert - Fatal编程技术网

Jquery 通过使用日期(按日期)在元素之间插入元素

Jquery 通过使用日期(按日期)在元素之间插入元素,jquery,sorting,date,insert,Jquery,Sorting,Date,Insert,我想知道如何通过使用日期插入元素 示例: <time datetime="2013-07-29">2013-07-29</time> <time datetime="2013-06-14">2013-06-14</time> <time datetime="2013-06-10">2013-06-10</time> <time datetime="2013-05-01">2013-05-01</time&g

我想知道如何通过使用日期插入元素

示例:

<time datetime="2013-07-29">2013-07-29</time>
<time datetime="2013-06-14">2013-06-14</time>
<time datetime="2013-06-10">2013-06-10</time>
<time datetime="2013-05-01">2013-05-01</time>
jQuery:

<time datetime="2013-06-12">2013-06-12</time>
<input value ="2013-06-12"><button>Add</button>

<time datetime="2013-07-29">2013-07-29</time>
<time datetime="2013-06-14">2013-06-14</time>
<time datetime="2013-06-10">2013-06-10</time>
<time datetime="2013-05-01">2013-05-01</time>
$('button').on('click',function(){
    var date = $('input').val();
    var html = $('<time datetime="'+date+'">'+date+'</time>');
    //html.addClass('new').insertAfter('time[datetime="2013-06-14"]');
});
$('button')。在('click',function()上{
var date=$('input').val();
var html=$(''+日期+'');
//html.addClass('new').insertAfter('time[datetime=“2013-06-14”]”);
});
演示:

<time datetime="2013-07-29">2013-07-29</time>
<time datetime="2013-06-14">2013-06-14</time>
<time datetime="2013-06-10">2013-06-10</time>
<time datetime="2013-05-01">2013-05-01</time>
如果可以的话,我想插入这个新元素,而不是重新排序元素。

检查这个:

 $('button').on('click',function(){
    var dateInput = $('input').val();
    var html = $('<time datetime="'+dateInput+'">'+dateInput+'</time>');

    dateInput = new Date( dateInput);

    $('time').each(function(){
        var tmp = new Date($(this).text());
        if(dateInput.getTime() > tmp.getTime())
        {
           html.addClass('new').insertBefore(this);
            return false;
        }
        html.addClass('new').insertAfter('time:last');
    });
});
$('button')。在('click',function()上{
var dateInput=$('input').val();
var html=$(''+dateInput+'');
dateInput=新日期(dateInput);
$('time')。每个(函数(){
var tmp=新日期($(this.text());
if(dateInput.getTime()>tmp.getTime())
{
html.addClass('new').insertBefore(this);
返回false;
}
addClass('new').insertAfter('time:last');
});
});
演示:

$('button')。在('click',function()上{
变量日期=$('input').val(),
t=新日期(Date).getTime(),
html=$(''+日期+''),
$f=$('time')。过滤器(函数(){

返回新日期(this.innerHTML).getTime()如果您已经有了排序的时间列表,您可以使用

$('button').on('click',function(){
    var date = $('input').val();
    var flag = 0;
    var html = $('<time datetime="'+date+'">'+date+'</time>');
    $('time').each(function() {
        var dt = new Date($(this).attr('datetime'));
        var inputdt = new Date(date);
        if( dt.getTime() > inputdt.getTime()) {
           $(this).before(html);
            flag = 1;
            return;
        }
    });
    $('time:last').after(html);
});
$('button')。在('click',function()上{
var date=$('input').val();
var标志=0;
var html=$(''+日期+'');
$('time')。每个(函数(){
var dt=新日期($(this.attr('datetime'));
var inputdt=新日期(日期);
if(dt.getTime()>inputdt.getTime()){
$(此).before(html);
flag=1;
返回;
}
});
$('time:last')。在(html)之后;
});

检查此项

我已更新了您的JSFIDLE。使用
。每个
,您都可以解决您的问题:

$('button')。在('click',function()上{
var date=$('input').val();
var html=$(''+日期+'');
$(“时间”)。每个(函数(){
如果(日期>$(此).attr('datetime')){
$(html).insertBefore($(this));
返回false;
}
});
});

我的意思是功能上的抱歉:(从功能上定义!?是的,就像所有可能的日期一样:添加方式
2013-06-11
1999-01-01
所有元素都将插入正确的位置哦
过滤器
(未定义)与简单的
每个
(您的),哪一个更好?抱歉,找到了错误。请尝试:
2009-06-12
如果日期是最后一个日期,我会做一些说明吗?谢谢你的发现。更新了答案。@l2aelba你用不同的值测试了另一个答案吗?测试了2个值,将测试更多我会使用
date
对象,因为它比比较字符串更可靠。
2011-06-12
意志fail@l2aelba更新了答案。
$('button').on('click',function(){
    var date = $('input').val();
    var html = $('<time class="new" datetime="'+date+'">'+date+'</time>');
    $("time").each(function(){
        if(date > $(this).attr('datetime')){
            $(html).insertBefore($(this));
            return false;
        }
    });
});