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 相关文章推荐
在次封装easyui-Dialog插件实现代码
Nov 14 Javascript
使用JavaScript 实现对象 匀速/变速运动的方法
May 08 Javascript
open 动态修改img的onclick事件示例代码
Nov 13 Javascript
jQuery中:submit选择器用法实例
Jan 03 Javascript
Angular Module声明和获取重载实例代码
Sep 14 Javascript
AngularJS中的promise用法分析
May 19 Javascript
vue项目实现github在线预览功能
Jun 20 Javascript
vue自定义全局共用函数详解
Sep 18 Javascript
jQuery点击页面其他部分隐藏下拉菜单功能
Nov 27 jQuery
详解es6新增数组方法简便了哪些操作
May 09 Javascript
elementUi vue el-radio 监听选中变化的实例代码
Jun 28 Javascript
一次微信小程序内地图的使用实战记录
Sep 09 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多种序列化与反序列化的方法
2013/06/06 PHP
为百度UE编辑器上传图片添加水印功能
2015/04/16 PHP
smarty的section嵌套循环用法示例
2016/05/28 PHP
php自定义函数实现JS的escape的方法示例
2016/07/07 PHP
PHP设计模式之数据访问对象模式(DAO)原理与用法实例分析
2019/12/12 PHP
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
理解JavaScript的变量的入门教程
2015/07/07 Javascript
JQuery通过AJAX从后台获取信息显示在表格上并支持行选中
2015/09/15 Javascript
深入理解JavaScript定时机制
2016/10/27 Javascript
Vue 过渡实现轮播图效果
2017/03/27 Javascript
wx-charts 微信小程序图表插件的具体使用
2019/08/18 Javascript
JavaScript实现拖拽功能
2020/02/11 Javascript
如何通过JS实现日历简单算法
2020/10/14 Javascript
[36:09]Secret vs VG 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.24
2019/09/10 DOTA
Python连接mssql数据库编码问题解决方法
2015/01/01 Python
python九九乘法表的实例
2017/09/26 Python
python安装模块如何通过setup.py安装(超简单)
2018/05/05 Python
Python可变对象与不可变对象原理解析
2020/02/25 Python
Python中flatten( ),matrix.A用法说明
2020/07/05 Python
CSS3提交意见输入框样式代码
2014/10/30 HTML / CSS
英国知名衬衫品牌美国网站:Charles Tyrwhitt美国
2016/08/28 全球购物
100%植物性、有机、即食餐:Sakara Life
2018/10/25 全球购物
资源工程专业毕业生求职信
2014/02/27 职场文书
施工员岗位职责
2014/03/16 职场文书
春节联欢晚会主持词范文
2014/03/24 职场文书
《花瓣飘香》教学反思
2014/04/15 职场文书
电子商务专业毕业生求职信
2014/06/12 职场文书
总经理助理岗位职责范本
2014/07/20 职场文书
工厂标语大全
2014/10/06 职场文书
承兑汇票转让证明怎么写?
2014/11/30 职场文书
2014年扫黄打非工作总结
2014/12/03 职场文书
校长师德表现自我评价
2015/03/04 职场文书
社区义诊通知
2015/04/24 职场文书
力克胡哲观后感
2015/06/10 职场文书
读《人生的智慧》有感:闲暇是人生的精华
2019/12/25 职场文书
鲲鹏 CentOS 7 安装Python3.7
2022/05/11 Servers