省市聯(lián)動(dòng)效果
技術(shù)分析
什么是DOM: Document Object Model : 管理我們的文檔,增刪改查規(guī)則
【HTML中的DOM操作】
一些常用的 HTML DOM 方法:
getElementById(id) - 獲取帶有指定 id 的節(jié)點(diǎn)(元素)
appendChild(node) - 插入新的子節(jié)點(diǎn)(元素)
removeChild(node) - 刪除子節(jié)點(diǎn)(元素)
一些常用的 HTML DOM 屬性:
innerHTML - 節(jié)點(diǎn)(元素)的文本值
parentNode - 節(jié)點(diǎn)(元素)的父節(jié)點(diǎn)
childNodes - 節(jié)點(diǎn)(元素)的子節(jié)點(diǎn)
attributes - 節(jié)點(diǎn)(元素)的屬性節(jié)點(diǎn)
查找節(jié)點(diǎn):
getElementById() 返回帶有指定 ID 的元素。
getElementsByTagName() 返回包含帶有指定標(biāo)簽名稱的所有元素的節(jié)點(diǎn)列表(集合/節(jié)點(diǎn)數(shù)組)。
getElementsByClassName() 返回包含帶有指定類名的所有元素的節(jié)點(diǎn)列表。
增加節(jié)點(diǎn):
createAttribute() 創(chuàng)建屬性節(jié)點(diǎn)。
createElement() 創(chuàng)建元素節(jié)點(diǎn)。
createTextNode() 創(chuàng)建文本節(jié)點(diǎn)。
insertBefore() 在指定的子節(jié)點(diǎn)前面插入新的子節(jié)點(diǎn)。
appendChild() 把新的子節(jié)點(diǎn)添加到指定節(jié)點(diǎn)。
刪除節(jié)點(diǎn):
removeChild() 刪除子節(jié)點(diǎn)。
replaceChild() 替換子節(jié)點(diǎn)。
修改節(jié)點(diǎn):
setAttribute() 修改屬性
setAttributeNode() 修改屬性節(jié)點(diǎn)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
/*動(dòng)態(tài)添加 : <p>文本</p> */
function dianwo(){
var div = document.getElementById("div1");
//創(chuàng)建元素節(jié)點(diǎn)
var p = document.createElement("p"); // <p></p>
//創(chuàng)建文本節(jié)點(diǎn)
var textNode = document.createTextNode("文本內(nèi)容");// 文本內(nèi)容
//將p 和文本內(nèi)容關(guān)聯(lián)起來
p.appendChild(textNode); // <p>文本</p>
//將P添加到目標(biāo)div中
div.appendChild(p);
}
</script>
</head>
<body>
<input type="button" value="點(diǎn)我,添加P" onclick="dianwo()" />
<!--一會(huì)動(dòng)態(tài)的往這個(gè)Div中添加節(jié)點(diǎn)-->
<div id="div1">
</div>
</body>
</html>
代碼實(shí)現(xiàn)
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
/*
準(zhǔn)備工作 : 準(zhǔn)備數(shù)據(jù)
*/
var provinces = [
["深圳市","東莞市","惠州市","廣州市"],
["長沙市","岳陽市","株洲市","湘潭市"],
["廈門市","福州市","漳州市","泉州市"]
];
/*
1. 確定事件: onchange
2. 函數(shù): selectProvince()
3. 函數(shù)里面要搞事情了
得到當(dāng)前操作元素
得到當(dāng)前選中的是那一個(gè)省份
從數(shù)組中取出對(duì)應(yīng)的城市信息
動(dòng)態(tài)創(chuàng)建城市元素節(jié)點(diǎn)
添加到城市select中
*/
function selectProvince(){
var province = document.getElementById("province");
//得到當(dāng)前選中的是哪個(gè)省份
//alert(province.value);
var value = province.value;
//從數(shù)組中取出對(duì)應(yīng)的城市信息
var cities = provinces[value];
var citySelect = document.getElementById("city");
//清空select中的option
citySelect.options.length = 0;
for (var i=0; i < cities.length; i++) {
//alert(cities[i]);
var cityText = cities[i];
//動(dòng)態(tài)創(chuàng)建城市元素節(jié)點(diǎn) <option>東莞市</option>
//創(chuàng)建option節(jié)點(diǎn)
var option1 = document.createElement("option"); // <option></option>
//創(chuàng)建城市文本節(jié)點(diǎn)
var textNode = document.createTextNode(cityText) ;// 東莞市
//將option節(jié)點(diǎn)和文本內(nèi)容關(guān)聯(lián)起來
option1.appendChild(textNode); //<option>東莞市</option>
//添加到城市select中
citySelect.appendChild(option1);
}
}
</script>
</head>
<body>
<!--選擇省份-->
<select onchange="selectProvince()" id="province">
<option value="-1">--請選擇--</option>
<option value="0">廣東省</option>
<option value="1">湖南省</option>
<option value="2">福建省</option>
</select>
<!--選擇城市-->
<select id="city"></select>
</body>
</html>
  
|