本文详解JavaScript中二维数组的构建方式,通过构造函数初始化行列数据。结合具体HTML示例,演示如何利用二维数组存储省份与城市数据,并通过DOM操作实现省份与城市下拉菜单的动态联动效果,适用于基础前端交互开发。
JavaScript 二维数组的创建方法
代码实现如下所示:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head>
<title>二维函数</title>
<script type="text/javascript" language="javascript">
/*
构建一个包含 rowLength 行和 colLength 列的数组结构
*/
function DArray(rowLength, colLength) {
var dArray = new Array(rowLength);
//为每一行初始化一个长度为 colLength 的子数组
for (var i = 0; i < rowLength; i++) {
dArray[i] = new Array(colLength);
}
return dArray;
}
function GetArray() {
var dArray = new DArray(10, 10);
dArray[0][10] = 100;
dArray[0][1] = "我喜欢JS";
alert(dArray[0][10] + "," + dArray[0][1]);
}
</script>
</head>
<body>
<input type="button" value="获取二维" onclick="GetArray()" />
</body>
</html>基于二维数组的动态下拉菜单联动
利用二维数组数据结构来绑定 SELECT 下拉菜单的选项内容
代码实现如下所示:
<HTML>
<HEAD>
<TITLE>动态改变下拉菜单内容示例</TITLE>
</HEAD>
<SCRIPT LANGUAGE=javascript>
//定义一个二维数组aArray,用于存储城市名称数据。
var aCity=new Array();
aCity[0]=new Array();
aCity[1]=new Array();
aCity[2]=new Array();
aCity[3]=new Array();
//进行赋值操作,将每个省份对应的城市列表存入数组的对应行中。
aCity[0][0]="--请选择--";
aCity[1][0]="--请选择--";
aCity[1][1]="广州市";
aCity[1][2]="深圳市";
aCity[1][3]="珠海市";
aCity[1][4]="汕头市";
aCity[1][5]="佛山市";
aCity[2][0]="--请选择--";
aCity[2][1]="长沙市";
aCity[2][2]="株州市";
aCity[2][3]="湘潭市";
aCity[3][0]="--请选择--";
aCity[3][1]="杭州市";
aCity[3][2]="苏州市";
aCity[3][3]="温州市";
function ChangeCity()
{
var i,iProvinceIndex;
iProvinceIndex=document.frm.optProvince.selectedIndex;
iCityCount=0;
while (aCity[iProvinceIndex][iCityCount]!=null)
iCityCount++;
//计算当前选定省份下的城市总数
document.frm.optCity.length=iCityCount;//更新下拉菜单的选项数量
for (i=0;i<=iCityCount-1;i++)//遍历并更新下拉菜单的显示内容
document.frm.optCity[i]=new Option(aCity[iProvinceIndex][i]);
document.frm.optCity.focus();
}
</SCRIPT>
<BODY ONfocus=ChangeCity()>
<H3>选择你所在的省份及城市</H3>
<FORM NAME="frm">
<P>省份:
<SELECT NAME="optProvince" SIZE="1" ONCHANGE=ChangeCity()>
<OPTION>--请选择--</OPTION>
<OPTION>广东省</OPTION>
<OPTION>湖南省</OPTION>
<OPTION>浙江省</OPTION>
</SELECT>
</P>
<P>城市:
<SELECT NAME="optCity" SIZE="1">
<OPTION>--请选择--</OPTION>
</SELECT>
</P>
</FORM>
</BODY>
</HTML>