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 相关文章推荐
js正则表达exec与match的区别说明
Jan 29 Javascript
js打开新窗口方法整理
Feb 17 Javascript
javascript常用代码段搜集
Dec 04 Javascript
jquery获取复选框checkbox的值的简单实现方法
May 26 Javascript
jQuery 3.0中存在问题及解决办法
Jul 15 Javascript
JavaScript实现横线提示输入验证码随输入验证码输入消失的方法
Sep 24 Javascript
javascript中对象的定义、使用以及对象和原型链操作小结
Dec 14 Javascript
webpack配置sass模块的加载的方法
Jul 30 Javascript
vue将时间戳转换成自定义时间格式的方法
Mar 02 Javascript
深入浅析Vue全局组件与局部组件的区别
Jun 15 Javascript
详解koa2学习中使用 async 、await、promise解决异步的问题
Nov 13 Javascript
解决Vue中使用keepAlive不缓存问题
Aug 04 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
PHP中根据IP地址判断城市实现城市切换或跳转代码
2012/09/04 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
PHP封装的MSSql操作类完整实例
2016/05/26 PHP
PHP实现数组的笛卡尔积运算示例
2017/12/15 PHP
php实现简易计算器
2020/08/28 PHP
jQuery 使用手册(三)
2009/09/23 Javascript
this和执行上下文实现代码
2010/07/01 Javascript
使用jquery与图片美化checkbox和radio控件的代码(打包下载)
2010/11/11 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
2013/08/12 Javascript
纯js简单日历实现代码
2013/10/05 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
javascript为按钮注册回车事件(设置默认按钮)的方法
2015/05/09 Javascript
EasyUI Combobox设置默认值 获取text的方法
2016/11/28 Javascript
javascript实现简单的ajax封装示例
2016/12/28 Javascript
Vue input控件通过value绑定动态属性及修饰符的方法
2017/05/03 Javascript
jQuery异步提交表单实例
2017/05/30 jQuery
JS库中的Particles.js在vue上的运用案例分析
2017/09/13 Javascript
基于Vue实现图书管理功能
2017/10/17 Javascript
javaScript中&quot;==&quot;和&quot;===&quot;的区别详解
2018/03/16 Javascript
解析Json字符串的三种方法日常常用
2018/05/02 Javascript
Bootbox将后台JSON数据填充Form表单的实例代码
2018/09/10 Javascript
详解js中let与var声明变量的区别
2020/04/05 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
JS桶排序的简单理解与实现方法示例
2019/11/25 Javascript
[44:51]2018DOTA2亚洲邀请赛 4.4 淘汰赛 VP vs Liquid 第二场
2018/04/05 DOTA
Python随机生成身份证号码及校验功能
2018/12/04 Python
Python深拷贝与浅拷贝用法实例分析
2019/05/05 Python
int在python中的含义以及用法
2019/06/27 Python
tensorflow estimator 使用hook实现finetune方式
2020/01/21 Python
Python Django搭建网站流程图解
2020/06/13 Python
中学生校园广播稿
2014/01/16 职场文书
护士检查书
2014/01/17 职场文书
领导党的群众路线教育实践活动个人对照检查材料
2014/09/23 职场文书
《天使的翅膀》读后感3篇
2019/12/20 职场文书
React 并发功能体验(前端的并发模式)
2021/07/01 Javascript
MySQL Shell import_table数据导入的实现
2021/08/07 MySQL