JavaScript实现Select二级联动下拉菜单详解

作者:纸飞机时间:2026-10-30 05:31:48浏览:299

本文详细介绍如何使用JavaScript实现Select下拉菜单的二级联动功能。重点讲解selectedIndex属性获取索引、Option构造函数创建选项以及清空下拉列表的两种方法,通过具体代码示例帮助开发者掌握下拉框动态交互的核心技术。

JavaScript实现Select二级联动下拉菜单详解

本文分享一个使用JavaScript实现Select下拉菜单二级联动的具体实例,供读者参考学习。


<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<HTML>
 <HEAD>
 <TITLE> New Document </TITLE>
 <META NAME="Generator" CONTENT="EditPlus">
 <META NAME="Author" CONTENT="">
 <META NAME="Keywords" CONTENT="">
 <META NAME="Description" CONTENT="">
 <script language="JavaScript" type="text/javascript">
 //定义了城市的二维数组,里面的顺序跟省份的顺序是相同的。通过selectedIndex获得省份的下标值来得到相应的城市数组
 var city=[
 ["北京","天津","上海","重庆"],
 ["南京","苏州","南通","常州"],
 ["福州","福安","龙岩","南平"],
 ["广州","潮阳","潮州","澄海"],
 ["兰州","白银","定西","敦煌"]
 ];

 function getCity(){
  //获得省份下拉框的对象
  var sltProvince=document.form1.province;
  //获得城市下拉框的对象
  var sltCity=document.form1.city;  
  //得到对应省份的城市数组
  var provinceCity=city[sltProvince.selectedIndex - 1];
 
  //清空城市下拉框,仅留提示选项
  sltCity.length=1;
 
  //将城市数组中的值填充到城市下拉框中
  for(var i=0;i<provinceCity.length;i++){
  sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);
  }
 }
 </script>
 </HEAD>
 
 <BODY>
 <FORM METHOD=POST ACTION="" name="form1">
  <SELECT NAME="province" onChange="getCity()">
  <OPTION VALUE="0">请选择所在省份 </OPTION>
  <OPTION VALUE="直辖市">直辖市 </OPTION>
  <OPTION VALUE="江苏省">江苏省 </OPTION>
  <OPTION VALUE="福建省">福建省 </OPTION>
  <OPTION VALUE="广东省">广东省 </OPTION>
  <OPTION VALUE="甘肃省">甘肃省 </OPTION>
  </SELECT>
  <SELECT NAME="city">
  <OPTION VALUE="0">请选择所在城市 </OPTION>
  </SELECT>
 </FORM>
 </BODY>
</HTML>

该示例代码结构简洁,易于理解。

若对JavaScript处理Select对象的操作不熟悉,可参考下文关于Select对象处理的详细说明。

获取当前选中项索引

1、利用selectedIndex属性获取当前选中项的索引

下拉列表的选项构成一个线性数组,每个选项均拥有对应的索引值。selectedIndex属性用于返回当前被选中选项的索引号。结合options属性,可以获取对应的option对象,进而执行后续操作。需要注意的是,当下拉框支持多选时,selectedIndex属性仅返回第一个被选中项的索引。

由于selectedIndex是只读属性,若需通过索引将特定选项设为选中状态,应设置对应option对象的selected属性为true。

动态添加下拉选项

2、向Select对象添加新选项


sltCity[i+1]=new Option(provinceCity[i],provinceCity[i]);

new Option(provinceCity[i], provinceCity[i])用于创建一个Option对象,其值和显示文本均为provinceCity[i]。sltCity代表页面中的city下拉框对象,i+1指定了新选项插入的位置。

清空下拉列表选项

3、清空Select对象的所有选项

删除下拉框所有选项主要有两种方法: 第一种方法是遍历删除:


 var l=myselect.length;
 for(var i=0;i<l;i++){
 myselect.options[i]=null;
 }

第二种方法更为简便,因此通常推荐使用此方式:


myselect.length=0;

以上为本文全部内容,希望能为您的学习提供有益帮助,欢迎继续支持本站。

作者最新文章