html td没有通过jquery更新

时间:2017-12-07 15:23:23

标签: javascript jquery html json

我有这个小方法,在第一次加载时,创建了<tr>和一些<td>'s。这样可行。但是,如果基础数据发生更改,则<td>'s不会更新。我不确定为什么。

    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 Lab,那么ChemLabCount的html不会改变。

我已经验证了传入此方法的json是正确的。意思是,计数确实会改变。它只是没有显示在屏幕上。

2 个答案:

答案 0 :(得分:1)

jQuery .html()是一个函数,而不是属性。

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

答案 1 :(得分:1)

问题来自td.html = json[i].Count;,因为这不是使用html()方法的正确方法。

要将Count设置为td,您可以使用.text()代替:

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

否则,如果要设置HTML代码,可以使用.html()

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