理解JS中的枚舉
在JavaScript中,枚舉其實(shí)就是一種使用JSON格式的數(shù)據(jù),即鍵值對(duì)存在的數(shù)據(jù)。 第一步:JSON的定義 JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交
在JavaScript中,枚舉其實(shí)就是一種使用JSON格式的數(shù)據(jù),即鍵值對(duì)存在的數(shù)據(jù)。
第一步:JSON的定義
JSON(JavaScript Object Notation)是一種輕量級(jí)的數(shù)據(jù)交換格式,采用完全獨(dú)立于語言的文本格式,是理想的數(shù)據(jù)交換格式。同時(shí),JSON是JavaScript原生格式,這意味著在JavaScript中處理JSON數(shù)據(jù)不需要任何特殊的API或工具包。
在JSON中,有兩種結(jié)構(gòu):對(duì)象和數(shù)組。
- 一個(gè)對(duì)象以“{”(左括號(hào))開始,“}”(右括號(hào))結(jié)束。每個(gè)“名稱”后跟一個(gè)“:”(冒號(hào));“'名稱/值'對(duì)”之間使用“,”(逗號(hào))分隔。名稱用引號(hào)括起來;值如果是字符串則必須用引號(hào),數(shù)值型則不需要。
- 數(shù)組是值(value)的有序集合。一個(gè)數(shù)組以“[”(左中括號(hào))開始,“]”(右中括號(hào))結(jié)束。值之間使用“,”(逗號(hào))分隔。
例如:
var o {
"name": "John",
"age": 30,
"city": "New York"
};
var arr ["apple", "banana", "orange"];
第二步:使用JSON實(shí)現(xiàn)級(jí)聯(lián)下拉框
具體代碼如下所示:
lt;!DOCTYPE htmlgt;
lt;htmlgt;
lt;headgt;
lt;meta charset"UTF-8"gt;
lt;titlegt;JSON數(shù)據(jù)下拉框lt;/titlegt;
lt;/headgt;
lt;bodygt;
lt;h2gt;省市聯(lián)動(dòng)框lt;/h2gt;
?。?
lt;select id"selector" onchange"selectorChange()"gt;lt;/selectgt;
市:
lt;select id"selector2"gt;lt;/selectgt;
lt;script type"text/javascript"gt;
var sheng {
"廣東省key": "廣東省",
"河南省key": "河南省",
"河北省key": "河北省"
};
var shi {
"廣東省key": {
"gkey1": "廣州市",
"gkey2": "深圳市"
},
"河南省key": {
"hkey1": "鄭州市",
"hkey2": "周口市"
},
"河北省key": {
"bkkey": "石家莊"
}
};
var obj (sheng);
var selector ("selector");
var selector2 ("selector2");
function() {
for(var key in obj) {
var opt ("option");
key;
obj[key];
(opt);
}
var ds shi["廣東省key"];
for(var key in ds) {
var opt2 ("option");
key;
ds[key];
(opt2);
}
}
function selectorChange(value) {
selector2.options.length 0;
var ds shi[value];
for(var key in ds) {
var opt2 ("option");
key;
ds[key];
(opt2);
}
}
lt;/scriptgt;
lt;/bodygt;
lt;/htmlgt;
第三步:測(cè)試省市級(jí)聯(lián)
打開網(wǎng)頁,查看默認(rèn)市級(jí)下拉框。然后分別選擇河南省和河北省,觀察市級(jí)下拉框的變化。可以發(fā)現(xiàn)市級(jí)下拉框會(huì)隨省的改變而改變。