无法在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不会将它们附加到表中。
将赋值给函数调用的结果是没有意义的,是被禁止的,并会产生运行时异常。
=
(赋值)运算符,以及+=
之类的导数要求运算符的左边是引用规范类型的表达式。也就是说,lhs = e
只有在与"变量或属性表达式"一起使用时才有效,如lhs
。
Reference类型用于解释delete、typeof和赋值操作符[包括=、+=等]等操作符的行为。例如,赋值操作的左操作数期望产生一个引用[规范类型表达式]。
这是JavaScript将值赋给适当变量/属性的方式。当不能进行这样的赋值操作时,例如试图在=
操作符的左侧使用函数调用时,将抛出运行时错误。
(这是我关于++的回答的改编)
这个特殊的实例可以通过以下方法解决,其中满足上述要求,因为innerHTML
是属性。
var elm = document.getElementById("mybody");
elm.innerHTML += "the new stuff";
(但是,更好的是使用正确的DOM操作,而不是HTML混乱)
相关文章:
- Javascript:应为赋值或函数调用,但实际看到的却是表达式
- 赋值后的回调函数
- 可以使用属性赋值实现多个函数
- 将ECMAScript 6析构函数赋值(ES2015)重构为旧版本的javascript
- Javascript:JSHint:应为赋值或函数调用,但实际看到的却是表达式
- 我可以在javascript中的回调函数中为变量赋值吗
- 错误-应为赋值或函数调用,但实际看到的却是表达式
- 将for循环的值赋给函数d3
- 内部函数不会为外部函数在 jQuery 中动态创建的元素赋值
- “期望赋值或函数调用,而是看到了表达式.” - 不必要的控制台.log
- Js提示:“;期望一个赋值或函数调用,而看到一个表达式“;,Switch语句
- Javascript值未定义,函数在赋值后运行
- 如何在另一个java脚本函数中访问java脚本中动态html表中单元格的动态赋值
- 将函数赋值给 javascript 中的元素
- 如何将函数返回的值赋值到变量中
- 在 JavaScript 中,未声明的变量赋值可以在函数范围之外访问
- 如何获取嵌套在两个赋值函数和一个 forEach 循环中的值
- 在JS中为变量赋值函数时,为什么会自动执行
- 在JavaScript中调用赋值函数
- 用循环赋值函数实参