html td没有通过jquery更新

问题描述 投票:1回答:2

我有这个小方法,在第一次加载时,创建了一个<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>

但是下一次,如果数据发生了变化并且有人离开了化学实验室,那么ChemLabCount的html不会改变。

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

javascript jquery html json
2个回答
1
投票

jQuery .html()是一个功能,而不是财产。

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

1
投票

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

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

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

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

td.html( json[i].Count );
© www.soinside.com 2019 - 2024. All rights reserved.