如何通过js将另外一个下拉菜单已选选项来修改当前下拉菜单的选项,这个效果我们在项目中经常见到,今天为大家整理下来提供学习,这里需要用到一些select对象的知识,先看一下效果图,再补充相关知识,最后将源码附上。
Select 对象
Select 对象代表 HTML 表单中的一个下拉列表。
在 HTML 表单中, 标签每出现一次,一个 Select 对象就会被创建。
可通过遍历表单的 elements[] 数组来访问某个 Select 对象,或者使用 document.getElementById()。
Select 对象集合
options 返回包含下拉列表中的所有选项的一个数组。
Select 对象属性
disabled 属性
可设置或返回是否金融下拉列表。
被禁用的 input 元素既不可用,也不可点击。可以设置 disabled 属性,直到满足某些其他的条件为止(比如选择了一个复选框等等)。
语法
设置 disabled 属性:
element.disabled=true|false
返回 disabled 属性:
element.disabled
form属性
form 属性可返回对包含该下拉列表的表单元素的引用。
该属性返回 form 对象。
语法
selectObject.form
length 属性
length 属性可返回下拉列表中选项的数目。
语法
selectObject.length=number
multiple 属性
multiple 属性可设置或返回是否可有多个选项被选中。
语法
设置multiple属性:
selectObject.multiple=true|false
返回multiple属性:
selectObject.multiple
name 属性
name 属性可设置或返回下拉列表的名称。
语法
设置name属性:
selectObject.name=name
返回name属性:
selectObject.name
selectedIndex 属性
selectedIndex属性可设置或返回下拉列表中被选选项的索引号。
注意:若允许多重选择,则仅会返回第一个被选选项的索引号。
语法
设置selectedIndex属性:
selectObject.selectedIndex=integer
返回selectedIndex属性:
selectObject.selectedIndex
size 属性
size 属性可设置或返回下拉列表中一次显示显示的选项数。
语法
设置size属性:
selectObject.size=integer
返回size属性:
selectObject.size
type 属性
type 属性可返回下拉列表的表单类型。对于下拉列表,类型总是 “select-one” 或 “select-multiple”。
语法
selectObject.type
浏览器支持
以上select对象属性所有主流浏览器都支持
Select 对象方法
add() 方法
add() 方法用于向 添加一个 元素。
语法
selectObject.add(option,before)
参数
描述
option
必需。要添加选项元素。必需是 option 或 optgroup 元素。
before
必需。在选项数组的该元素之前增加新的元素。如果该参数是null,元素添加到选项数组的末尾。
浏览器支持
所有主要浏览器都支持 add() 方法
提示: add() 方法在 IE8 和更高版本的 IE中需要在页面声明 !DOCTYPE 。
实例
向下拉列表的末尾添加一个 “kiwi” 选项
HTML代码:
Apple
Pear
Banana
Orange
插入选项
注意:add()方法在IE8或更高版本中正常工作,要在页面中添加一个!DOCTYPE声明。对于IE 8之前的版本还要注意额外的代码。
JavaScript代码:
function displayResult(){
var x=document.getElementById("mySelect");
var option=document.createElement("option");
option.text="Kiwi";
try{
// 对于更早的版本IE8
x.add(option,x.options[null]);
}catch (e){
x.add(option,null);
}
}
remove() 方法
remove() 方法用于从下拉列表删除选项。
语法
selectObject.remove(index)
参数
描述
index
必需。规定要删除的选项的索引号。
浏览器支持
所有主要浏览器都支持 remove() 方法
实例
从列表中删除被选的选项:
HTML代码:
Apple
Pear
Banana
Orange
JavaScript代码:
function removeOption(){
var x=document.getElementById("mySelect");
x.remove(x.selectedIndex);
}
以上补充知识完毕,接下来看我们今天主要内容实现方法
首先,HTML放入两个select,一个是选中的,另一个是更具选中的option展示的select
-- Car --
Volvo
Volkswagen
BMW
然后,我们在JavaScript中定义一个对象用来存放这些需要的数据值
var carsAndModels={};
carsAndModels['VO']=['V70','XC60','XC90'];
carsAndModels['VW']=['Golf','Polo','Scirocco','Touareg'];
carsAndModels['BMW']=['M6','X5','Z3'];
最后,定义ChangeCarList()方法来做具体操作
function ChangeCarList(){
var carList=document.getElementById("car");
var modelList=document.getElementById("carmodel");
var selCar=carList.options[carList.selectedIndex].value;
while (modelList.options.length){
modelList.remove(0);
}
var cars=carsAndModels[selCar];
if (cars){
for (var i=0;i
var car=new Option(cars[i],i);
modelList.options.add(car);
}
}
}
以上就是全部实现方法,完整代码附上
码云笔记(mybj123.com)var carsAndModels={};
carsAndModels['VO']=['V70','XC60','XC90'];
carsAndModels['VW']=['Golf','Polo','Scirocco','Touareg'];
carsAndModels['BMW']=['M6','X5','Z3'];
function ChangeCarList(){
var carList=document.getElementById("car");
var modelList=document.getElementById("carmodel");
var selCar=carList.options[carList.selectedIndex].value;
while (modelList.options.length){
modelList.remove(0);
}
var cars=carsAndModels[selCar];
if (cars){
for (var i=0;i
var car=new Option(cars[i],i);
modelList.options.add(car);
}
}
}
-- Car --
Volvo
Volkswagen
BMW