[英]How do I access the form element in JavaScript which contains popup window
[英]How do I access a variable which contains a dot?
以下是我的脚本
var err=activityLocal.message;
var text="";
var i;
for (i = 0; i < err.length; i++) {
text+= err[i].message +";";
}
document.write(text);
这里activityLocal.message
的值如下图所示:
[{
"message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
"severity": "FAILURE"
}, {
"message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
"severity": "FAILURE"
}];
但是输出是undefined
,似乎 JS 引擎与activityLocal.message
变量中的点混淆了。 如何解决此错误?
在您的代码中,它们是变量名的问题,它不应该包含点,这是非法的。
var activityLocal_message = [{
"message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
"severity": "FAILURE"
}, {
"message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
"severity": "FAILURE"
}];
var err=activityLocal_message;
var text="";
var i;
for (i = 0; i < err.length; i++) {
text+= err[i].message +";";
//console.log(err[i].message);
}
console.log(text);
或者如果你真的想使用点运算符试试这个
您不能在点表示法中使用变量(缺少使用 eval,您不想这样做)。 使用点表示法,属性名称本质上是一个常数。
myObj.propName
// is equivalent to
myObj["propName"]
您可以使用数组map
函数循环遍历activityLocal.message
中的所有消息,这将返回strings
数组并使用数组join
函数将它们连接起来,如下所示:
var err= [{ "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.", "severity": "FAILURE" }, { "message": "Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.", "severity": "FAILURE" }]; var text= err.map(function(e) { return e.message; }).join(";"); alert(text);
该数组能够循环值,但问题可能是在 html 中设置它。 下面是代码,您也可以签入Plunker
// Code goes here
var activityLocal = {};
activityLocal.message = [
{
message:
"Data Source 'TestDataSource' is in a state incompatible with this operation at server 'manaed_server_4'.",
severity: 'FAILURE',
},
{
message:
"Data Source 'TestDataSource' is in a state incompatible with this operation at server 'managed_server_3'.",
severity: 'FAILURE',
},
];
var err = activityLocal.message;
var text = '';
var i;
for (i = 0; i < err.length; i++) {
text += err[i].message + ';';
//alert(text);
}
document.getElementById('showtext').innerHTML = 'tttt' + text;
如果您的意思是要使用点作为变量名,那根本不可能。
如果您想将其用作对象变量,则可以通过object.variableName
访问它。 例如。 假设您的对象名为myObj
并且分配给该对象的变量名为myVar
您可以通过以下调用访问它: myObj.myVar
。 或者,您也可以使用 for(或现代 JavaScript 运行时环境中的 foreach)循环遍历对象。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.