5

我正在创建一个动态事件日历列表,并试图找出一种方法来根据它们的 Id 在两个元素之间添加一个新元素。现有元素有一个被格式化为用作事件日期的 ID。

ID 由 yymmdd 日期创建

例子

<li id="120523">
    This would be an event for May 23rd, 2012
</li>

<li id="120525">
    This would be for May 25th, 2012
</li>

我要做的是动态创建一个新事件并将其放置在正确的位置。例如:如果用户为 2012 年 5 月 24 日创建了另一个事件,则应该将它放在两者之间关于 li 的。

它必须是动态的,因为如果列表中有大量事件,每天只有一个事件,它必须抓取 ID 大于它的第一个元素,并且 ID 小于它的第一个元素,并在它们之间创建新元素。

例子:

我正在尝试生成这样的东西:

<li id="120504">May 4, 2012<li>

并按 id 以正确的顺序将其放入无序列表中,如下所示:

<ul>
<li id="120123">Jan 23, 2012</li>
<li id="120415">April 15, 2012</li>
<li id="120502">May 2, 2012</li>
// new element should go here
<li id="120520">May 20, 2012</li>
<li id="120816">Aug 16, 2012</li>
</ul>

使用 jQuery

4

2 回答 2

1

试试这个:http: //jsfiddle.net/UJdaW/

$(function(){
    $(".date").datepicker();
    $("#add").click(function(){
        var id = parseInt( $.datepicker.formatDate('ymmdd', new Date($(".date").val())));
        var el = $("<li>This would be for " + $(".date").val() + "</li>").attr("id",id)
        var lastLi = null;
        $("li").each(function(){
            var currId = parseInt($(this).attr("id"));
            lastLi = $(this);
            if (currId > id){
                el.insertBefore($(this));
                lastLi=null;
                return false;
            }
        });

        if (lastLi){
            el.insertAfter(lastLi);
        }
    });
});​
于 2012-09-12T05:23:25.557 回答
0

我不太确定你的问题,但就我而言,你想根据它们的 Id 在两个元素之间添加一个新元素......所以你试过 jQuery wrap 在这里找到它http://api.jquery.com/裹/

希望这可以帮助...

于 2012-09-12T05:15:54.007 回答