JavaScript 错误:无法将对象转换为原始值
我使用以下 javascript 代码收到此错误:
function tempTest(evt) {
alert(evt.currentTarget.id);
ct = document.getElementById(evt.currentTarget.id);
rslt = document.getElementById('rslt');
var props;
for (var prop in ct) {
if (ct.hasOwnProperty(prop)) {
propVal = ct[prop];
var propDat = prop + ' = ' + propVal;
props += propDat + '<br/>';
}
}
rslt.innerHTML = props;
}
这让我感到困惑。有什么想法吗?
I'm receiving this error using the following javascript code:
function tempTest(evt) {
alert(evt.currentTarget.id);
ct = document.getElementById(evt.currentTarget.id);
rslt = document.getElementById('rslt');
var props;
for (var prop in ct) {
if (ct.hasOwnProperty(prop)) {
propVal = ct[prop];
var propDat = prop + ' = ' + propVal;
props += propDat + '<br/>';
}
}
rslt.innerHTML = props;
}
This one has me puzzled. Any ideas?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
并非 HTML 元素的所有属性都是原语。例如,父元素、子元素等也是 HTML 元素。您不能仅将它们用作字符串或数字。
您需要添加一个条件并相应地使用该属性。
Not all the properties of a HTML element are primitives. for example, parent, childs etc are also HTML elements. You can't just use them as strings or numbers.
You need to add there a condition and use that property accordingly.
如果有问题的对象是 json,您可以调用 JSON.stringify(thingThatIsJson) 这将返回一个字符串。
.toString()
不适用于 json。这是给那些处理像
req.body
这样的东西的人的一条消息,它将在console.log()
中工作,这是相当令人困惑的,因为它可能不会表现得像字符串(就像当您尝试将其添加到另一个字符串时)。If the object in question is json, you can call
JSON.stringify(thingThatIsJson)
which will return a String..toString()
does not work on json.This is a message to those of you dealing with something like
req.body
which will work inconsole.log()
which is rather confusing since it may not otherwise behave like a String (like when you're trying to add it to another String).(OP:)
(The OP:)
问题出在代码的
propVal
部分。因为这可能无法转换为字符串。The problem lies with the
propVal
part of your code. Since that may not be converted into a string.