javascript Select标记中options操作方法集合


Posted in Javascript onOctober 22, 2008

javascript操作Select标记中options集合
先来看看options集合的这几个方法:
options.add(option)方法向集合里添加一项option对象;
options.remove(index)方法移除options集合中的指定项;
options(index)或options.item(index)可以通过索引获取options集合的指定项;

javascript代码如下:

var selectTag = null; //select标记
var OPTONLENGTH = 10; //每次填充option数
var colls = []; //对select标记options的引用

window.onload = function(){
selectTag = document.getElementById("SelectBox"); //获取select标记
colls = selectTag.options; //获取引用
//initSelectBox(); //自初始化select.options
};

//使用随机数填充select.options
function initSelectBox(){
var random = 0 ;
var optionItem = null;
var item = null;

if(colls.length > 0 && isClearOption()){
clearOptions(colls);
}

for(var i=0;i<OPTONLENGTH;i++){

random = Math.floor(Math.random()*9000)+1000;
item = new Option(random,random); //通过Option()构造函数创建option对象
selectTag.options.add(item); //添加到options集合中
}

watchState();
}
//添加新option项前是否清空当前options
function isClearOption(){
return document.getElementById("chkClear").checked;
}
//清空options集合
function clearOptions(colls){
var length = colls.length;
for(var i=length-1;i>=0;i--){
colls.remove(i);
}
}
//添加一项新option
function addOption(){
colls.add(createOption());
lastOptionOnFocus(colls.length-1);
watchState();
}
//创建一个option对象
function createOption(){
var random = Math.floor(Math.random()*9000)+1000;
return new Option(random,random);
}
//删除options集合中指定的一项option
function removeOption(index){
if(index >= 0){
colls.remove(index);
lastOptionOnFocus(colls.length-1);
}
watchState();
}
//获取当前选定的option索引
function getSelectedIndex(){
return selectTag.selectedIndex;
}
//获取options集合的总数
function getOptionLength(){
return colls.length;
}
//获取当前选定的option文本
function getCurrentOptionValue(index){
if(index >= 0)
return colls(index).value;
}
//获取当前选定的option值
function getCurrentOptionText(index){
if(index >= 0)
return colls(index).text;
}
//使用options集合中最后一项获取焦点
function lastOptionOnFocus(index){
selectTag.selectedIndex = index;
}
//显示当select标记状态
function watchState(){
var divWatch = document.getElementById("divWatch");
var innerHtml="";
innerHtml = "option总数:" + getOptionLength();
innerHtml += "<br/>当前项索引:" + getSelectedIndex();
innerHtml += "<br/>当前项文本:" + getCurrentOptionText(getSelectedIndex());
innerHtml += "<br/>当前项值:" + getCurrentOptionValue(getSelectedIndex());
divWatch.innerHTML = innerHtml;
divWatch.align = "justify";
}

注意到上面创建option项时,使用了Option()构造函数,这个构造函数有两个版本的重载。
1、var option = new Option(text,value); //这里要大写Option()
2、var option = new Option();
option.text = text;
option.value=value;
我个人比较喜欢第一种方法来创建option对象。
另外,select标记还有一个比较有用的属性就是selectedIndex,通过它可能获取当前选择的option索引,或通过索引设置指定options集合中哪一项被选择。
select.selctedIndex = select.options.length-1; //将options集合中最后一项选中
var selectedItem = select.options(select.selectedIndex);//获取当前选中项
selectedItem.text; //选中项的文本
selectedItem.value; //选中项的值

<BODY>
<Select name="SelectBox">
</Select>
<hr/>
<div id="divWatch" style="background-color:beige;width=220;">
</div>
<hr/>
<h4>使用随机数初始化SelectBox</h4>
<input type="button" value="Init" onclick="initSelectBox()"/> <input type="checkbox" name="chkClear"/>clear
<hr/>
<h4>添加option项</h4>
<input type="button" value="create" onclick="addOption()"/>
<hr/>
<h4>删除option项</h4>
<input type="button" value="delete" onclick="removeOption(colls.length-1)"/>
</BODY>
检测是否有选中
if(objSelect.selectedIndex > -1) {
//说明选中
} else {
//说明没有选中
}

删除被选中的项
objSelect.options[objSelect.selectedIndex] = null;

增加项
objSelect.options[objSelect.length] = new Option("你好","hello");

修改所选择中的项
objSelect.options[objSelect.selectedIndex] = new Option("你好","hello");

得到所选择项的文本
objSelect.options[objSelect.selectedIndex].text;

得到所选择项的值
objSelect.options[objSelect.selectedIndex].value;

Javascript 相关文章推荐
超级给力的JavaScript的React框架入门教程
Jul 02 Javascript
js实现兼容性好的微软官网导航下拉菜单效果
Sep 07 Javascript
js计算时间差代码【包括计算,天,时,分,秒】
Apr 26 Javascript
requireJS使用指南
Apr 27 Javascript
基于Bootstrap+jQuery.validate实现表单验证
May 30 Javascript
JavaScript队列、优先队列与循环队列
Nov 14 Javascript
JS中with的替代方法与String中的正则方法详解
Dec 23 Javascript
Node.js中文件操作模块File System的详细介绍
Jan 05 Javascript
浅谈通过JS拦截 pushState和replaceState事件
Jul 21 Javascript
vue中v-show和v-if的异同及v-show用法
Jun 06 Javascript
Vue中跨域及打包部署到nginx跨域设置方法
Aug 26 Javascript
浅谈Vue3 Composition API如何替换Vue Mixins
Apr 29 Javascript
JavaScript Undefined,Null类型和NaN值区别
Oct 22 #Javascript
javascript TextArea动态显示剩余字符
Oct 22 #Javascript
Javascript this关键字使用分析
Oct 21 #Javascript
JQuery AJAX实现目录浏览与编辑的代码
Oct 21 #Javascript
JavaScript confirm选择判断
Oct 18 #Javascript
javascript脚本编程解决考试分数统计问题
Oct 18 #Javascript
提高网站信任度的技巧
Oct 17 #Javascript
You might like
一个高ai的分页函数和一个url函数
2006/10/09 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
Linux下源码包安装Swoole及基本使用操作图文详解
2019/04/02 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
event.keyCode键码值表 附只能输入特定的字符串代码
2009/05/15 Javascript
js/jquery去掉空格,回车,换行示例代码
2013/11/05 Javascript
jQuery中element选择器用法实例
2014/12/29 Javascript
js关于命名空间的函数实例
2015/02/05 Javascript
jQuery实现带有动画效果的回到顶部和底部代码
2015/11/04 Javascript
JavaScript实现图片自动加载的瀑布流效果
2016/04/11 Javascript
前端jquery部分很精彩
2016/05/03 Javascript
基于Bootstrap使用jQuery实现简单可编辑表格
2016/05/04 Javascript
jQuery EasyUI基础教程之EasyUI常用组件(推荐)
2016/07/15 Javascript
AngularJS 验证码60秒倒计时功能的实现
2017/06/05 Javascript
js获取css的各种样式并且设置他们的方法
2017/08/22 Javascript
vue+socket.io+express+mongodb 实现简易多房间在线群聊示例
2017/10/21 Javascript
React从react-router路由上做登陆验证控制的方法
2018/05/10 Javascript
Smartour 让网页导览变得更简单(推荐)
2019/07/19 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
element-ui table组件如何使用render属性的实现
2019/11/04 Javascript
Nodejs文件上传、监听上传进度的代码
2020/03/27 NodeJs
javascript设计模式 ? 观察者模式原理与用法实例分析
2020/04/22 Javascript
解决vue+webpack项目接口跨域出现的问题
2020/08/10 Javascript
[01:57]2018DOTA2亚洲邀请赛赛前采访-iG
2018/04/03 DOTA
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
python pycurl验证basic和digest认证的方法
2018/05/02 Python
浅析Python 中几种字符串格式化方法及其比较
2019/07/02 Python
python3.7 利用函数os pandas利用excel对文件名进行归类
2019/09/29 Python
python中pyplot基础图标函数整理
2020/11/10 Python
Python读写Excel表格的方法
2021/03/02 Python
开水果连锁店创业计划书
2013/12/29 职场文书
生产部岗位职责范文
2014/02/07 职场文书
《灰雀》教学反思
2016/02/19 职场文书
python小程序之飘落的银杏
2021/04/17 Python
一文彻底理解js原生语法prototype,__proto__和constructor
2021/10/24 Javascript