[英]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.