1

これは簡単な作業かもしれませんが、私はちょっと行き詰まっています。

次の構造のリストがあります。

<ul id='index_orders'>
 <li data-role='list-divider'>Awaiting picking</li>
 <li>Blah blah</li>
 <li data-role='list-divider' id='index_orders_ad_divider'>Awaiting delivery</li>
 <li>Blah blah</li>
</ul>

<li id='index_orders_ad_divider'>エントリの下にある待機中の注文のリストを取得するために ajax 呼び出しを開始してい ます。

これまでのところ、私はここまで来ましたが、新しいものを追加する前に、「index_orders_ad_divider」の id の<li> 後に表示されるすべてのものを最初に削除する方法を理解できないようです:<li>

    $.getJSON(root_url + $(this).attr('href') + '?callback=?', null, function (d) {
        $("#index_orders_ad_divider").after(d.html);
        $("#index_orders").listview('refresh');
        $("#index_pickedOrders_count").html($("#index_pickedOrders > li").length);
        $.mobile.loading('hide');
    });
4

1 に答える 1

0

これを行う 1 つの方法を次に示します。残念ながら、次の 2 つの手順が必要です。

$.getJSON(root_url + $(this).attr('href') + '?callback=?', null, function (d) {
    // Cache $el since we're using it a couple times.
    var $el = $("#index_orders_ad_divider");

    // Remove all <li>s after this one
    $("#index_orders li:gt(" + $el.index() + ")").remove();

    // Insert the new <li>s after this one.
    $el.after(d.html);

    $("#index_orders").listview('refresh');
    $("#index_pickedOrders_count").html($("#index_pickedOrders > li").length);
    $.mobile.loading('hide');
});

例: http://jsfiddle.net/6zAN7/3/

于 2012-12-02T23:53:48.587 に答える