我使用以下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;
}
这让我感到困惑。有任何想法吗?
并非HTML元素的所有属性都是基元。例如,parent,childs等也是HTML元素。您不能只将它们用作字符串或数字。 您需要添加条件并相应地使用该属性。
(OP :)
只是想为任何偶然发现这篇文章的人发布更新的片段...
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)) {
var propVal = ct[prop];
props += prop + ' (' + typeof(prop) + ')' + ' = ';
if (typeof(ct[prop]) == 'string') {
propVal += ct[prop];
} else {
if (propVal != null && propVal.toString) {
props += propVal.toString();
} else {}
}
props += '<br/>';
}
}
rslt.innerHTML = props;
}
如果有问题的对象是json,你可以调用返回String的JSON.stringify(thingThatIsJson)
。 .toString()
不适用于json。
这是对你们那些处理像req.body
这样的东西的消息,它会在console.log()
中工作,这是相当混乱的,因为它可能不会像String一样(就像当你试图将它添加到另一个String时)。
问题在于代码的propVal
部分。因为那可能不会被转换成字符串。