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

JavaScript XML實(shí)現(xiàn)兩級(jí)級(jí)聯(lián)下拉列表

 更新時(shí)間:2008年11月10日 00:20:39   作者:  
用xml作為存儲(chǔ)容器,不用數(shù)據(jù)庫(kù),速度和效率高些。
1.創(chuàng)建測(cè)試XML文件:select.xml
復(fù)制代碼 代碼如下:

<?xml version="1.0" encoding="GBK"?>
<select>
<province id="sx">
陜西
<city id="xa">西安</city>
<city id="bj">寶雞</city>
<city id="ak">安康</city>
</province>
<province id="js">
江蘇
<city id="nj">南京</city>
<city id="xz">徐州</city>
</province>
<province id="sh">
上海
</province>
</select>

2.創(chuàng)建HTML頁(yè)面:select.html
復(fù)制代碼 代碼如下:

<body>
</body>
<script>...
/**//**
* @description 二級(jí)級(jí)聯(lián)下拉
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
SelectLevel.prototype.xml;
SelectLevel.prototype.provinces;
SelectLevel.prototype.parentName="province";//父節(jié)點(diǎn)名稱(chēng)
SelectLevel.prototype.childName="city";//子節(jié)點(diǎn)名稱(chēng)
SelectLevel.prototype.keyName="id";//屬性
/**//**
* 對(duì)象SelectLevel的構(gòu)造器
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
function SelectLevel(parentName,childName,keyName)...{
if(parentName!=null && parentName!="")...{
this.parentName=parentName;
}
if(childName!=null && childName!="")...{
this.childName=childName;
}
if(keyName!=null && keyName!="")...{
this.keyName=keyName;
}
}
/**//**
* 加載xml文件
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
SelectLevel.prototype.readXML=function(url)...{
var selectXML;
//如果它受支持,采用標(biāo)準(zhǔn)的2級(jí)DOM技術(shù)
if(document.implementation && document.implementation.createDocument)...{
//創(chuàng)建新的Document對(duì)象
selectXML=document.implementation.createDocument("","",null);
//設(shè)置裝載完畢時(shí)觸發(fā)事件
selectXML.onload=function()...{
alert("加載完成");
}
selectXML.load(url);
}else...{//IE瀏覽器創(chuàng)建Document對(duì)象
selectXML=new ActiveXObject("Microsoft.XMLDOM");
//設(shè)置onload
selectXML.onreadystatechange=function()...{
if(selectXML.readyState==4)...{
alert("加載完成");
}
}
selectXML.load(url);
}
this.xml=selectXML;
}
/**//**
* 遍歷xml
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
SelectLevel.prototype.iteratorXML=function(node,level)...{
var n=node;
if(n==null)...{
n=this.xml.documentElement;
}
if(level==null)...{
level=0;
}
if(n.nodeType==3)...{
for(var i=0;i<level;i++)...{
document.write("-");
}
document.write(n.data.trim()+"<br>");
}else...{
for(var m=n.firstChild;m!=null;m=m.nextSibling)...{
this.iteratorXML(m,level+1);
}
}
}
/**//**
* 下拉聯(lián)動(dòng)
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
SelectLevel.prototype.changeSelect=function()...{
var city=document.getElementById(this.childName);
var province=document.getElementById(this.parentName);
city.options.length=0;
if(province.value==null || province.value=="")...{
city.options.length=1;
city.options[0].text="請(qǐng)選擇…";
return;
}
var citys=this.provinces[this[province.value]].getElementsByTagName(this.childName);
if(citys.length==0)...{
city.options.length=city.options.length+1;
city.options[city.options.length-1].value=province.value;
for(var i=0;i<province.options.length;i++)...{
if(province.options[i].selected)...{
city.options[city.options.length-1].text=province.options[i].text;
return;
}
}
return;
}
city.options.length=citys.length;
for(var i=0;i<citys.length;i++)...{
city.options[i].value=citys[i].getAttribute(this.keyName);
city.options[i].text=citys[i].firstChild.data.trim();
}
}
/**//**
* 初始化下拉列表
* @author BluesLee
* @lastModif BluesLee
* @createDate 2007-10-13
* @modifDate 2007-10-15
* @version 1.0
*/
SelectLevel.prototype.init=function(parent,province,city)...{
this.provinces=this.xml.getElementsByTagName(this.parentName);
var selectProvince=document.createElement("select");
var selectCity=document.createElement("select");
var obj=this;
selectProvince.setAttribute("name",this.parentName);
selectProvince.setAttribute("id",this.parentName);
selectProvince.attachEvent("onchange",function()...{obj.changeSelect();});
selectProvince.options.length=this.provinces.length+1;
selectProvince.options[0].text="請(qǐng)選擇…";
selectCity.setAttribute("name",this.childName);
selectCity.setAttribute("id",this.childName);
selectCity.options.length=1;
selectCity.options[0].text="請(qǐng)選擇…";
for(var i=0;i<this.provinces.length;i++)...{
SelectLevel.prototype[this.provinces[i].getAttribute(this.keyName)]=i;
selectProvince.options[i+1].value=this.provinces[i].getAttribute(this.keyName);
selectProvince.options[i+1].text=this.provinces[i].firstChild.data.trim();
if(this.provinces[i].getAttribute(this.keyName)==province)...{
selectProvince.options[i+1].selected=true;
var citys=this.provinces[i].getElementsByTagName(this.childName);
selectCity.options.length=citys.length+1;
for(var j=0;j<citys.length;j++)...{
selectCity.options[j+1].value=citys[j].getAttribute(this.keyName);
selectCity.options[j+1].text=citys[j].firstChild.data.trim();
if(citys[j].getAttribute(this.keyName)==city)...{
selectCity.options[j+1].selected=true;
}
}
}
}
parent.appendChild(selectProvince);
parent.appendChild(selectCity);
}
String.prototype.trim=function()...{
return this.replace(/^s*/g,"").replace(/s*$/g,"");
}
//測(cè)試
var newXML=new SelectLevel();
newXML.readXML("select.xml");
//newXML.iteratorXML(null,-2);
newXML.init(document.body,"sx","bj");
</script>

相關(guān)文章

  • JavaScript中通過(guò)閉包解決只能取得包含函數(shù)中任何變量最后一個(gè)值的問(wèn)題

    JavaScript中通過(guò)閉包解決只能取得包含函數(shù)中任何變量最后一個(gè)值的問(wèn)題

    JavaScript中解決閉包只能取得包含函數(shù)中任何變量最后一個(gè)值的問(wèn)題
    2010-08-08
  • JavaScript事件委托(事件代理)舉例詳解

    JavaScript事件委托(事件代理)舉例詳解

    JavaScript事件委托是一種常見(jiàn)的優(yōu)化性能的技術(shù),它利用了事件冒泡的機(jī)制,將事件處理程序綁定在父元素上,而不是綁定在每個(gè)子元素上,這篇文章主要給大家介紹了關(guān)于JavaScript事件委托(事件代理)的相關(guān)資料,需要的朋友可以參考下
    2024-03-03
  • js實(shí)現(xiàn)對(duì)table動(dòng)態(tài)添加、刪除和更新的方法

    js實(shí)現(xiàn)對(duì)table動(dòng)態(tài)添加、刪除和更新的方法

    這篇文章主要介紹了js實(shí)現(xiàn)對(duì)table動(dòng)態(tài)添加、刪除和更新的方法,涉及javascript針對(duì)html中table表格節(jié)點(diǎn)的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-02-02
  • Javascript 鏈?zhǔn)阶饔糜蛟敿?xì)介紹

    Javascript 鏈?zhǔn)阶饔糜蛟敿?xì)介紹

    這篇文章主要介紹了Javascript 鏈?zhǔn)阶饔糜蛟敿?xì)介紹的相關(guān)資料,需要的朋友可以參考下
    2017-02-02
  • 通俗易懂講解Json Web Token (JWT)

    通俗易懂講解Json Web Token (JWT)

    這篇文章主要介紹了通俗易懂講解Json Web Token (JWT)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • 微信小程序webView嵌入H5的方法實(shí)例

    微信小程序webView嵌入H5的方法實(shí)例

    web-view是小程序提供的一個(gè)可以直連h5頁(yè)面的組件,只要傳遞一個(gè)h5頁(yè)面的地址,就可以在小程序里直接打開(kāi)預(yù)覽該h5頁(yè)面,這篇文章主要給大家介紹了微信小程序webView嵌入H5的相關(guān)資料,需要的朋友可以參考下
    2021-07-07
  • js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)代碼分享

    js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)代碼分享

    這篇文章主要介紹了js+css實(shí)現(xiàn)上下翻頁(yè)相冊(cè)特效,相冊(cè)可以從上方或者下方隨意切換,推薦給大家,有需要的小伙伴可以參考下。
    2015-08-08
  • ES6 更易于繼承的類(lèi)語(yǔ)法的使用

    ES6 更易于繼承的類(lèi)語(yǔ)法的使用

    這篇文章主要介紹了ES6 更易于繼承的類(lèi)語(yǔ)法的使用,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-02-02
  • 你可能不知道的JSON.stringify()詳解

    你可能不知道的JSON.stringify()詳解

    老司機(jī)們,你知道JSON.stringify還有第二個(gè)和第三個(gè)可選參數(shù)嗎?它們是什么呢?是不是感到不可思議?下面這篇文章就來(lái)給大家介紹了一些你可能不知道的JSON.stringify的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),需要的朋友可以參考下。
    2017-08-08
  • 詳解JavaScript常用的Hook腳本

    詳解JavaScript常用的Hook腳本

    這篇文章主要介紹了JavaScript常用的Hook腳本,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-03-03

最新評(píng)論

霞浦县| 清水县| 丹巴县| 筠连县| 阜康市| 额敏县| 鄂托克前旗| 永嘉县| 临海市| 团风县| 海口市| 洪洞县| 团风县| 平塘县| 萍乡市| 长垣县| 察哈| 咸丰县| 远安县| 南京市| 汶川县| 潞城市| 八宿县| 天气| 寻乌县| 云龙县| 霍林郭勒市| 长沙县| 金门县| 胶州市| 桦南县| 从化市| 伊宁县| 南岸区| 凤山县| 剑阁县| 大荔县| 隆子县| 青州市| 伊宁市| 玉环县|