1

別のサーバーからデータを取得して、自分の Web サイトに表示したいと考えています。リモート サーバーは jsonp を使用するため、jQuery を使用しています。私のコードは次のようになります。

$.getJSON(json_url, function(data) {
  var items = [];
  $.each(data, function(key, val) {
    items.push("<li id=" + key + ">" + val + "</li>");
  });

  $( "<ul/>", {
    "class": "my-new-list",
    html: items.join("")
  }).appendTo("#my-id");
});

新しいデータがあるかどうかを確認するために、1分後に別のリクエストを作成したいので、使用するsetInterval(main, 60000)か、このようなものを使用する可能性があります。

しかし問題は、新しいデータを取得しても、古いデータが消去されないことです。したがってli、古い値と新しい値を持つ要素があります。

古いデータを消去するには、コードをどのように変更すればよいですか?

4

6 に答える 6

1

試す:

$("#my-id").html($( "<ul/>", {
    "class": "my-new-list",
    html: items.join("")
}));
于 2013-10-24T07:21:27.123 に答える
0

アイテムulを追加する前にクリアしてください。またはliを使用できます。$('ul-id').empty()$('ul-id li').detach()

于 2013-10-24T07:23:32.283 に答える
0

次のように新しいアイテムを追加する前に<ul>withメソッドをクリアします。.empty()

$.getJSON(json_url, function(data) {
  var items = [];
  $.each(data, function(key, val) {
    items.push("<li id=" + key + ">" + val + "</li>");
  });

  $("#my-id").empty();

  $( "<ul/>", {
    "class": "my-new-list",
    html: items.join("")
  }).appendTo("#my-id");
});
于 2013-10-24T07:20:56.687 に答える
0

置く:

$("#my-id").empty();

コールバック関数の先頭。.appendToその名前が示すように、コンテンツを置き換える代わりに要素に追加します。

于 2013-10-24T07:21:11.827 に答える