簡體   English   中英

無法附加到javascript中的表格。 錯誤:無法分配給函數結果

[英]Unable to append to table within javascript. Error: Cannot assign to a function result

我正在使用ajax從Web API獲取項目,然后嘗試將該項目的屬性分配給表:

 function find() {
        var id = $('#contentID').val();
        $.getJSON(uri + '/' + id)
            .done(function (data) {
             fillTable(data);
                                })
            .fail(function (jqXHR, textStatus, err) {
                $('#content').text('Error: ' + err);
            });
    }


    function fillTable(item) {
      document.getElementById("mybody") += "<td id = \"td1\" runat=\"server\">" + item.contentType + "</td> <td id=\"td2\" runat=\"server\">" + item.contentID + "</td></tr>";
    }

而且我的html中有此表:

 <table id="example" class="responstable">
         <thead>
            <tr>
                <th data-th="Driver details"><span>Timestamp</span></th>
                <th>Content Type</th>
                <th>Task Name</th>
                <th>Task Version</th>
                <th>Task State</th>
            </tr>
        </thead>

        <tbody id="mybody" runat="server">
            <tr>

            </tr>
        </tbody>

    </table>

我知道我要返回JSON對象,因為我將其屬性打印到屏幕上,並且它們打印得很好。 我不明白為什么javascript不會將它們附加到表中。

分配一個函數調用的結果是沒有意義的,並禁止使用運行時異常。

= (賦值)運算符以及+=等派生詞要求運算符的左側是Reference Specification Type的表達式。 也就是說, lhs = e僅在將“變量或屬性表達式”用作lhs時才有效。

Reference類型用於解釋刪除,typeof和賦值運算符(包括=,+ =等)之類的運算符的行為。 例如,一個賦值的左操作數應該產生一個引用[規范類型表達式]。

這就是JavaScript如何將值分配回適當的變量/屬性的方式。 當無法進行此類分配時(例如,嘗試在=運算符的左側使用函數調用時),將引發運行時錯誤。

(這是我對++的回答的改編。)


該特定實例可以通過以下滿足上述要求的方法來解決,因為innerHTML是一個屬性

 var elm = document.getElementById("mybody");
 elm.innerHTML += "the new stuff";

(但是,更好的方法是使用適當的DOM操作,而不是HTML處理。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM