|           编程(Programming)是编定程序的中文简称,就是让计算机代码解决某个问题,对某个计算体系规定一定的运算方式,使计算体系按照该计算方式运行,并最终得到相应结果的过程。为了使计算机能够理解(understand)人的意图,人类就必须将需解决的问题的思路、方法和手段通过计算机能够理解的形式告诉计算机,使得计算机能够根据人的指令一步一步去工作,完成某种特定的任务。这种人和计算体系之间交流的过程就是编程。 【实例名称】 JS代码实现三级联动菜单(2) 【实例描述】 三级联动菜单一般用在多项选择上,如果用户不选择第一级菜单,就无法实现第二级菜单的选择。本例学习制作三级联动菜单,与前例不同的是,本例的实现方法是通过封装方法的调用。 【实例代码】   <html xmlns="http://www.w3.org/1999/xhtml" >
<head>
    <title>标题页-本站(www.xue51.com)</title>
</head>
<body>
<form method="post" name="form1"> 
<select name="select1" onchange="select()"></select> 
<select name="select2"></select> 
<select name="select3"></select> 
</form> 
<script language="javascript"> 
var arrText = new Array(3); 
var arrValue = new Array(arrText.length); 
//设置3个下拉框的值
function objSetOption(select1, select2, select3) { 
this.select1 = select1; 
this.select2 = select2; 
this.select3 = select3; 
} 
//指定3个下拉框的值
arrText[0]= new objSetOption("选择A:", 
"选择B_1:,选择B_2:", "选择C_1:,选择C_2:"); 
arrText[1] = new objSetOption("论文:A", 
"语文:A,数学:B,英语:C", "初中:A,高中:B"); 
arrText[2] = new objSetOption("例题:A", "显示A2_1:
值B2_1,显示A2_2:值B2_2", "显示A3_1:值B3_1,显示B3_2:值B3_2"); 
//判断用户的选择
function select() { 
var eltSelect1 = document.form1.select1; 
var eltSelect2 = document.form1.select2; 
var eltSelect3 = document.form1.select3; 
var arrSelect1, arrSelect2, arrSelect3; 
var arrData1, arrData2, arrData3; 
//如果选择的是第一个下拉框
with(eltSelect1) { 
var strSelect = options[selectedIndex].value; 
} 
for(i = 0;i < arrText.length;i ++) { 
arrSelect1 = arrText[i].select1; 
arrData1 = arrSelect1.split(":"); 
if (arrData1[1] == strSelect) { 
arrSelect2 = (arrText[i].select2).split(","); 
for(j = 0;j < arrSelect2.length;j++) { 
arrData2 = arrSelect2[j].split(":"); 
//如果选择的是第二个下拉框
with(eltSelect2) { 
length = arrSelect2.length; 
options[j].text = arrData2[0]; 
options[j].value = arrData2[1]; 
} 
} 
arrSelect3 = (arrText[i].select3).split(","); 
for(j = 0;j < arrSelect3.length;j++) { 
arrData3 = arrSelect3[j].split(":");
//如果选择的是第三个下拉框 
with(eltSelect3) { 
length = arrSelect3.length; 
options[j].text = arrData3[0]; 
options[j].value = arrData3[1]; } 
} 
break; } 
} 
} 
//初始化设置3个下拉框
function init() { 
var eltSelect1 = document.form1.select1; 
var eltSelect2 = document.form1.select2; 
var eltSelect3 = document.form1.select3; 
var arrSelect1, arrSelect2, arrSelect3; 
var arrData1, arrData2, arrData3; 
if (eltSelect1 != undefined && eltSelect2 !
= undefined && eltSelect3 != undefined) { 
with(eltSelect1) { 
length = arrText.length; 
for(i = 0;i < arrText.length;i ++) { 
arrSelect1 = arrText[i].select1; 
arrData1 = arrSelect1.split(":"); 
options[i].text = arrData1[0]; 
options[i].value = arrData1[1]; 
} 
} 
with(eltSelect2) { 
arrSelect2 = (arrText[0].select2).split(","); 
length = arrSelect2.length; 
for(i = 0;i < length;i ++) { 
arrData2 = arrSelect2[i].split(":"); 
options[i].text = arrData2[0]; 
options[i].value = arrData2[1]; 
} 
} 
with(eltSelect3) { 
arrSelect3 = (arrText[0].select3).split(","); 
length = arrSelect3.length; 
for(i = 0;i < length;i ++) { 
arrData3 = arrSelect3[i].split(":"); 
options[i].text = arrData3[0]; 
options[i].value = arrData3[1]; } } 
} 
} 
init(); 
</script> 
</body>
</html>
 
 【运行效果】   【难点剖析】 本例的重点是如何动态填充二级和三级菜单。当使用“options[selectedIndex].Value”知道用户选择的是第一级菜单时,使用“arrSelect2=(arrText[i].select2).split(”,”);’’为二级菜单填充内容;当选择的是二级菜单时,使用“arrData3=arrSelect3[j].split(¨=");”为三级菜单填充内容。 【源码下载】 为了JS代码的准确性,请点击:三级联动菜单(2) 进行本实例源码下载  
 使用编程语言写的程序,由于每条指令都对应计算机一个特定的基本动作,所以程序占用内存少、执行效率高。 
 |