2017-04-22 14 views
0

私は形式で日付データattribueを持っているアイテムのリストを持っている「YY/MM/DD午後12時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> 

そして私はどのように私はjQueryを使ってこれを解決するのです

<li data-date="2012/04/22 21:30"></li> 

上記のリストに挿入する必要がある新しいdymanicリスト項目があるでしょうか?

答えて

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>

0

私はあなたが、要件をこのようにアプローチすべき

  1. は、すべてのノードを呼び出して、配列内のそれらの値と店をフェッチと思います。その後、 はすべての日付時刻の値を秒に変換します。
  2. 要件に応じてASC/DESC順に並べ替えます。
  3. の値を<li></li>というタグと他の属性でカプセル化し、値を元の形式に再度変換します。
  4. 新しく生成されたHTMLを古いものに置き換えます。

これを行うのが最善の方法かどうかはわかりませんが、これは有効な解決策です。

関連する問題