2017-12-07 13 views
1

私は最初の読み込みで<tr>といくつか<td>'sを作成しました。それは動作します。しかし、基礎となるデータが変更された場合、<td>'sは更新されません。なぜ私は分からない。html tdはjqueryを使用して更新していません

function ParseJson(json, isFirstLoad) 
    { 
     json = $.parseJSON(json); 
     var tr; 
     for (var i = 0; i < json.length; i++) { 
      if (isFirstLoad === 1) 
      { 
       tr = $('<tr/>'); 
       tr.append("<td id='" + json[i].LocationName + "'>" + json[i].LocationName + "</td>"); 
       tr.append("<td id='" + json[i].LocationName + "Count'>" + json[i].Count + "</td>"); 
       $('#MainTable').append(tr); 
      } 
      else 
      { 
       var td = $("#" + json[i].LocationName + "Count"); 
       td.html = json[i].Count; 
      } 
     } 

isFirstLoadが1の場合、htmlは期待どおりにレンダリングされます。例:

<tr> 
    <td id="ChemLab">ChemLab</td> 
    <td id="ChemLabCount">24</td> 
</tr> 

しかし、周り次回、データが変更されたと誰かがCHEMラボ、ChemLabCountが変化しないため、HTMLを残している場合。

このメソッドに渡されたjsonが正しいことを確認しました。意味、カウントは実際に変更されます。それは単に画面に表示されません。

+1

を、私はそれがあるべきだと思います'td.html(json [i] .Count);' td.text(json [i] .Count); '? – Steve

+0

forループで "id"を使用しているので、同じIDを持つ複数のタグがあります。クラスプロパティを使用しようとします。 – Vermicello

+0

あなたの今削除されたスレッドでは、激しい反応があります。私たちには、少し消えていくメンバーがいますが、その材料の多くは役に立ちますが、彼らは辛抱することがあります。将来的にはmodフラグを呼び出すことをお勧めします。 – halfer

答えて

1

jQuery .html()は、プロパティではなく、プロパティです。それはhtml()メソッドを使用する正しい方法ではありませんので、

td.html(json[i].Count); 
1

問題がtd.html = json[i].Count;から来ています。

はあなたに Countを設定するには tdあなたの代わりに .text()を使用することもできます。そうでなければ

td.text(json[i].Count); 

を使用すると、HTMLコードを設定したい場合は、.html()使用できます。

td.html(json[i].Count); 
関連する問題