js 四级联动

转载于:https://www.cnblogs.com/louby/p/7085534.html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>JS联动下拉框</title>
<meta name="GENERATOR" content="Microsoft FrontPage 4.0">
<meta name="ProgId" content="FrontPage.Editor.Document">
<meta name="Originator" content="Microsoft Visual Studio .NET 7.1">
<script language="javascript">
/*
** ==================================================================================================
** 类名:CLASS_LIANDONG_YAO
** 功能:多级连动菜单
**
** 作者:YAODAYIZI
** ==================================================================================================
**/
function CLASS_LIANDONG_YAO(array) {
//数组,联动的数据源
this.array = array;
this.indexName = '';
this.obj = '';
//设置子SELECT
// 参数:当前onchange的SELECT ID,要设置的SELECT ID
this.subSelectChange = function (selectName1, selectName2) {
//try
//{
var obj1 = document.all[selectName1];
var obj2 = document.all[selectName2];
var objName = this.toString();
var me = this;

obj1.onchange = function () {

me.optionChange(this.options[this.selectedIndex].value, obj2.id)
}
}
//设置第一个SELECT
// 参数:indexName指选中项,selectName指select的ID
this.firstSelectChange = function (indexName, selectName) {
this.obj = document.all[selectName];
this.indexName = indexName;
this.optionChange(this.indexName, this.obj.id)
}

// indexName指选中项,selectName指select的ID
this.optionChange = function (indexName, selectName) {
var obj1 = document.all[selectName];
var me = this;
obj1.length = 0;
obj1.options[0] = new Option("-请选择-", '');
for (var i = 0; i < this.array.length; i++) {

if (this.array[i][1] == indexName) {
//alert(this.array[i][1]+" "+indexName);
obj1.options[obj1.length] = new Option(this.array[i][2], this.array[i][0]);
}
}
}

}
</script>
</head>
<body>

<form name="form1" method="post">

<SELECT ID="x1" NAME="x1">
<OPTION selected></OPTION>
</SELECT>
<SELECT ID="x2" NAME="x2">
<OPTION selected></OPTION>
</SELECT>
<SELECT ID="x3" NAME="x3">
<OPTION selected></OPTION>
</SELECT>
<SELECT ID="x4" NAME="x4">
<OPTION selected></OPTION>
</SELECT>
<SELECT ID="x5" NAME="x5">
<OPTION selected></OPTION>
</SELECT>

</form>
</body>


<script language="javascript">
//数据源 数据格式 ID,父级ID,显示名称
var array2 = new Array();//数据格式 ID,父级ID,名称
array2[0] = new Array("贵州", "根目录", "贵州");
array2[1] = new Array("贵阳", "贵州", "贵阳");
array2[2] = new Array("遵义", "贵州", "遵义");
array2[3] = new Array("汇川区", "遵义", "汇川区");
array2[4] = new Array("红花岗区", "遵义", "红花岗区");
array2[5] = new Array("上海路", "汇川区", "上海路");
array2[6] = new Array("南京路", "汇川区", "南京路");
array2[7] = new Array("丁字口", "红花岗区", "丁字口");
array2[8] = new Array("遵义会议", "红花岗区", "遵义会议");

//--------------------------------------------
//这是调用代码
//设置数据源
var liandong2 = new CLASS_LIANDONG_YAO(array2);
//设置第一个选择框
liandong2.firstSelectChange("根目录", "x1");
//设置子选择框
liandong2.subSelectChange("x1", "x2")
liandong2.subSelectChange("x2", "x3")
liandong2.subSelectChange("x3", "x4")
liandong2.subSelectChange("x4", "x5")
</script>
</html>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
HTML和JavaScript的四级联动是一种常见的前端开发技术,用于实现多个下拉列表之间的关联关系。通过选择一个下拉列表的选项,可以动态改变其他下拉列表的内容。 实现四级联动的基本步骤如下: 1. 在HTML中创建多个下拉列表,每个下拉列表都有一个唯一的id属性。 2. 使用JavaScript编写事件处理函数,当第一个下拉列表的选项改变时,触发该函数。 3. 在事件处理函数中,根据第一个下拉列表的选项值,动态生成第二个下拉列表的选项。 4. 根据第二个下拉列表的选项值,动态生成第三个下拉列表的选项。 5. 根据第三个下拉列表的选项值,动态生成第四个下拉列表的选项。 以下是一个简单的示例代码: HTML部分: ```html <select id="first"> <option value="option1">选项1</option> <option value="option2">选项2</option> </select> <select id="second"></select> <select id="third"></select> <select id="fourth"></select> ``` JavaScript部分: ```javascript // 获取下拉列表元素 var firstSelect = document.getElementById("first"); var secondSelect = document.getElementById("second"); var thirdSelect = document.getElementById("third"); var fourthSelect = document.getElementById("fourth"); // 第一个下拉列表改变时触发事件处理函数 firstSelect.addEventListener("change", function() { // 根据选项值生成第二个下拉列表的选项 var selectedOption = firstSelect.value; // 根据selectedOption生成第二个下拉列表的选项 // ... // 清空第三个和第四个下拉列表的选项 thirdSelect.innerHTML = ""; fourthSelect.innerHTML = ""; }); // 第二个下拉列表改变时触发事件处理函数 secondSelect.addEventListener("change", function() { // 根据选项值生成第三个下拉列表的选项 var selectedOption = secondSelect.value; // 根据selectedOption生成第三个下拉列表的选项 // ... // 清空第四个下拉列表的选项 fourthSelect.innerHTML = ""; }); // 第三个下拉列表改变时触发事件处理函数 thirdSelect.addEventListener("change", function() { // 根据选项值生成第四个下拉列表的选项 var selectedOption = thirdSelect.value; // 根据selectedOption生成第四个下拉列表的选项 // ... }); ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值