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 相关文章推荐
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
jQuery使用andSelf()来包含之前的选择集
May 19 Javascript
JavaScript使用indexOf获得子字符串在字符串中位置的方法
Apr 06 Javascript
js实现纯前端的图片预览
Apr 27 Javascript
AngularJS使用ng-Cloak阻止初始化闪烁问题的方法
Nov 03 Javascript
Angular客户端请求Rest服务跨域问题的解决方法
Sep 19 Javascript
Three.js入门之hello world以及如何绘制线
Sep 25 Javascript
关于JavaScript语句后面的分号问题
Dec 07 Javascript
jQuery实现ajax的嵌套请求案例分析
Feb 16 jQuery
浅析JavaScript异步代码优化
Mar 18 Javascript
vue实现移动端input上传视频、音频
Aug 18 Javascript
vue项目中企业微信使用js-sdk时config和agentConfig配置方式详解
Dec 15 Vue.js
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实现的json类实例
2015/07/28 PHP
javascript真的不难-回顾一下基础知识
2013/01/15 Javascript
JS 模态对话框和非模态对话框操作技巧汇总
2013/04/15 Javascript
javascript与cookie 的问题详解
2013/11/11 Javascript
推荐JavaScript实现继承的最佳方式
2014/11/11 Javascript
JS实现控制表格只显示行边框或者只显示列边框的方法
2015/03/31 Javascript
jQuery获取访问者IP地址的方法(基于新浪API与QQ查询接口)
2016/05/25 Javascript
深入解析JavaScript中的arguments对象
2016/06/12 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
JS访问DOM节点方法详解
2016/11/29 Javascript
PHP+jquery+ajax实现分页
2016/12/09 Javascript
Html5 js实现手风琴效果
2020/04/17 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
JavaScript实现的文本框placeholder提示文字功能示例
2018/07/25 Javascript
使用Node搭建reactSSR服务端渲染架构
2018/08/30 Javascript
如何进行微信公众号开发的本地调试的方法
2019/06/16 Javascript
vue滚动tab跟随切换效果
2020/06/29 Javascript
vue实现修改图片后实时更新
2019/11/14 Javascript
Vue Object.defineProperty及ProxyVue实现双向数据绑定
2020/09/02 Javascript
python读写ini配置文件方法实例分析
2015/06/30 Python
Python实现快速排序算法及去重的快速排序的简单示例
2016/06/26 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
浅谈python str.format与制表符\t关于中文对齐的细节问题
2019/01/14 Python
django实现类似触发器的功能
2019/11/15 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
tf.concat中axis的含义与使用详解
2020/02/07 Python
python实现音乐播放器 python实现花框音乐盒子
2020/02/25 Python
python 弧度与角度互转实例
2020/04/15 Python
Python实现加密的RAR文件解压的方法(密码已知)
2020/09/11 Python
加拿大票务网站:Ticketmaster加拿大
2017/07/17 全球购物
eDreams葡萄牙:全球最大的在线旅行社之一
2019/04/15 全球购物
户外亲子活动策划方案
2014/02/07 职场文书
小学教师寄语大全
2014/04/03 职场文书
应届硕士毕业生自荐信
2014/05/26 职场文书
专家推荐信怎么写
2015/03/25 职场文书
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis