最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

基于JS實現(xiàn)省市聯(lián)動效果代碼分享

 更新時間:2016年06月06日 09:34:36   作者:NoobRun  
這篇文章主要介紹了基于JS實現(xiàn)省市聯(lián)動效果代碼的相關(guān)資料,非常實用,在日常項目開發(fā)過程中經(jīng)常遇到此需求,下面小編給大家分享實現(xiàn)代碼,需要的朋友可以參考下

在日常項目開發(fā)階段經(jīng)常見到下拉框二級聯(lián)動效果,尤其是涉及地區(qū)、品種等有多級選項時。比如說:常見的省市聯(lián)動下拉框,在選擇省份時,城市列表也會更隨改變。

思路:

1,所謂聯(lián)動效果,是指出發(fā)父級的數(shù)據(jù)變化時,會影響到關(guān)聯(lián)性子級數(shù)據(jù)元素的變化。

下面是造的省市的數(shù)據(jù):

var linkDatas = {
provinces:[
{
"code":"0",
"name":"請選擇"
},
{
"code":"1",
"name":"北京"
},
{
"code":"2",
"name":"天津"
},
{
"code":"3",
"name":"河北"
},
{
"code":"4",
"name":"湖北"
},
{
"code":"5",
"name":"廣東"
},
{
"code":"6",
"name":"其他"
}
],
citys:{
0:[
"請選擇"
],
1:[
"朝陽區(qū)",
"海淀區(qū)",
"東城區(qū)",
"西城區(qū)",
"房山區(qū)",
"其他"
],
2:[
"天津"
],
3:[
"滄州",
"石家莊",
"秦皇島",
"其他"
],
4:[
"武漢市",
"宜昌市",
"襄樊市",
"其他"
],
5:[
"廣州市",
"深圳市",
"汕頭市",
"佛山市",
"珠海市",
"其他"
],
6:[
"其他"
]
}
};

2,根據(jù)數(shù)據(jù)動態(tài)生成option節(jié)點:

function addOptions(target,options){
var optionEle = null,
target = target,
option = options,
optionLen = options.length;
for(var i = 0;i < optionLen;i++){
optionEle = document.createElement('option');
optionEle.value = option[i].value;
optionEle.text = option[i].text;
target.options.add(optionEle);
}
}

3,根據(jù)上述省市數(shù)據(jù),其中code代表“省級”指向“城市”的標(biāo)識符,當(dāng)省級的數(shù)據(jù)變更時,出發(fā)change事件:

pro.onchange = function(){
console.log(this);
var ct = city[this.value],
ctLen = ct.length,
ctBox = [];
c.innerHTML = ""; 
/*添加城市*/ 
for(var j = 0;j < ctLen;j++){
ctBox.push({
"text" : ct[j],
"value": ct[j]
});
}
addOptions(c,ctBox);
}

HTML代碼:

<div class="content">
<h3>下拉框聯(lián)動效果</h3>
<p>省份:
<select name="provinces" id="provinces">
</select>
</p>
<p>
市:
<select name="citys" id="citys">
</select>
</p>
</div>

全部JavaScript代碼:

var linkDatas = {
provinces:[
{
"code":"0",
"name":"請選擇"
},
{
"code":"1",
"name":"北京"
},
{
"code":"2",
"name":"天津"
},
{
"code":"3",
"name":"河北"
},
{
"code":"4",
"name":"湖北"
},
{
"code":"5",
"name":"廣東"
},
{
"code":"6",
"name":"其他"
}
],
citys:{
0:[
"請選擇"
],
1:[
"朝陽區(qū)",
"海淀區(qū)",
"東城區(qū)",
"西城區(qū)",
"房山區(qū)",
"其他"
],
2:[
"天津"
],
3:[
"滄州",
"石家莊",
"秦皇島",
"其他"
],
4:[
"武漢市",
"宜昌市",
"襄樊市",
"其他"
],
5:[
"廣州市",
"深圳市",
"汕頭市",
"佛山市",
"珠海市",
"其他"
],
6:[
"其他"
]
}
};
function addOptions(target,options){
var optionEle = null,
target = target,
option = options,
optionLen = options.length;
for(var i = 0;i < optionLen;i++){
optionEle = document.createElement('option');
optionEle.value = option[i].value;
optionEle.text = option[i].text;
target.options.add(optionEle);
}
}
function provincesCitysLink(pro,c){
var LD = linkDatas,
provinces = LD.provinces,
city = LD.citys,
initCity = city[0],
proBox = [];
/*添加省份*/
for(var i = 0;i < provinces.length;i++){
proBox.push({
"text" : provinces[i].name,
"value": provinces[i].code
})
} 
addOptions(pro,proBox);
/*初始化城市*/
addOptions(c,[{
"text" : initCity,
"value": initCity
}]);
/*添加聯(lián)動事件*/
pro.onchange = function(){
console.log(this);
var ct = city[this.value],
ctLen = ct.length,
ctBox = [];
c.innerHTML = ""; 
/*添加城市*/ 
for(var j = 0;j < ctLen;j++){
ctBox.push({
"text" : ct[j],
"value": ct[j]
});
}
addOptions(c,ctBox);
}
}
var provinces = document.getElementById('provinces'),
citys = document.getElementById('citys');
provincesCitysLink(provinces,citys);

相關(guān)文章

  • FullCalendar日歷插件應(yīng)用之?dāng)?shù)據(jù)展現(xiàn)(一)

    FullCalendar日歷插件應(yīng)用之?dāng)?shù)據(jù)展現(xiàn)(一)

    fullcalendar作為一個功能完善的日歷插件使用非常廣泛,在web開發(fā)開發(fā)過程 中非常流行。它與ext js 中的calendar非常類似,但考慮到extjs 比較“復(fù)雜龐大”,所以我在開發(fā)開發(fā)過程中都會優(yōu)先考慮fullcalendar
    2015-12-12
  • IE8 兼容性問題(屬性名區(qū)分大小寫)

    IE8 兼容性問題(屬性名區(qū)分大小寫)

    屬性名大小寫問題,如屬性window.screen.height
    2009-06-06
  • 網(wǎng)上應(yīng)用的一個不錯common.js腳本

    網(wǎng)上應(yīng)用的一個不錯common.js腳本

    網(wǎng)上應(yīng)用的一個不錯common.js腳本...
    2007-08-08
  • 簡述ES6新增關(guān)鍵字let與var的區(qū)別

    簡述ES6新增關(guān)鍵字let與var的區(qū)別

    最近看了很多文章,偶然間看到ES6中新增了一個關(guān)鍵字 let ,它具有與 var 關(guān)鍵字相似的功能。接下來通過本文給大家介紹ES6新增關(guān)鍵字let與var的區(qū)別,需要的朋友可以參考下
    2019-08-08
  • webpack幾種手動實現(xiàn)HMR的方式

    webpack幾種手動實現(xiàn)HMR的方式

    眾所周知,在webpack中使用模塊熱替換(HMR),能夠使得應(yīng)用在運(yùn)行時,本文就介紹一下如何實現(xiàn)HMR,感興趣的可以了解一下
    2021-07-07
  • js前端加密庫Crypto-js進(jìn)行MD5/SHA256/BASE64/AES加解密的方法與示例

    js前端加密庫Crypto-js進(jìn)行MD5/SHA256/BASE64/AES加解密的方法與示例

    js加密解密可以使用crypto-js它可以進(jìn)行MD5、SHA-1、SHA-256、Base64、AES、DES、等算法和加密,這是一個對稱加密的庫,可以使用 AES、DES、但沒有rsa等非對稱加密的方法
    2023-12-12
  • 詳解Nuxt.js 實戰(zhàn)集錦

    詳解Nuxt.js 實戰(zhàn)集錦

    這篇文章主要介紹了Nuxt.js 實戰(zhàn)集錦,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-11-11
  • js與css的阻塞問題詳析

    js與css的阻塞問題詳析

    JS具有阻塞特性,當(dāng)瀏覽器在執(zhí)行js代碼時,不能同時做其它事情,下面這篇文章主要給大家介紹了關(guān)于js與css阻塞問題的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • 教你修改element-ui源碼給el-dialog添加全屏功能

    教你修改element-ui源碼給el-dialog添加全屏功能

    el-dialog組件提供了fullscreen功能,但是無法滿足業(yè)務(wù)需求。系統(tǒng)使用了許多dialog,不方便重新封裝dialog組件,故直接對源碼進(jìn)行修改,這篇文章主要介紹了修改element-ui源碼給el-dialog添加全屏功能,需要的朋友可以參考下
    2022-11-11
  • JS實現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))

    JS實現(xiàn)斐波那契數(shù)列的五種方式(小結(jié))

    這篇文章主要介紹了JS實現(xiàn)斐波那契數(shù)列的五種方式(小結(jié)),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09

最新評論

塔城市| 溧水县| 津南区| 和顺县| 普陀区| 宝鸡市| 类乌齐县| 林州市| 广西| 长乐市| 子长县| 徐汇区| 柳州市| 青神县| 循化| 济南市| 河池市| 宁国市| 鹤山市| 临清市| 河北区| 育儿| 宜城市| 北票市| 迭部县| 宜城市| 萨嘎县| 永丰县| 淮安市| 霸州市| 平果县| 丰县| 石柱| 尉氏县| 泾阳县| 兰西县| 舟山市| 祁阳县| 永兴县| 东兴市| 渑池县|