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