我有一个项目列表,其日期数据的格式为" yy / mm / dd 00:00"
我要在列表中添加一个列表项,但我需要找到正确的位置。因此,如果我有一个日期值为" 2012/04/22 21:30"的项目,那么我需要找到日期值大于该值的第一个列表项,然后在其前面添加列表项
所以我有我的清单项目
<li data-date="2010/04/05 20:40"></li>
<li data-date="2011/06/05 21:40"></li>
<li data-date="2012/08/05 22:40"></li>
<li data-date="2013/10/05"></li>
然后我需要在上面的列表中插入一个新的动态列表项
<li data-date="2012/04/22 21:30"></li>
如何使用Jquery解决此问题?
答案 0 :(得分:1)
您需要将要插入的新data-date
的属性li
与已存在于DOM中的列表项进行比较。
$(function() {
var c = 0;
var a = '<li data-date="2011/06/05 21:40">2011/06/05 21:40</li>';
var aa = Date.parse($(a).attr('data-date'));
$('li').each(function(i, v) {
var aaa = ($(v).attr('data-date'));
var b = Date.parse(aaa);
if (b > aa) {
$(a).insertBefore(v);
c = 1;
return false;
}
})
if (!c) {
$('ul').append(a);
}
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul>
<li data-date="2010/04/05 20:40">2010/04/05 20:40</li>
<li data-date="2012/08/05 22:40">2012/08/05 22:40</li>
<li data-date="2013/10/05 22:40">2013/10/05 22:40</li>
</ul>
答案 1 :(得分:0)
我认为你应该以这种方式达到要求,
<li></li>
标记和其他属性的值。我不确定这是否是最佳方法,但这是一个有效的解决方案。