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;
}
});
});