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 相关文章推荐
PNGHandler-借助JS让PNG图在IE下实现透明(包括背景图)
Aug 31 Javascript
javascript parseInt 函数分析(转)
Mar 21 Javascript
jQuery实现折线图的方法
Feb 28 Javascript
JS实现浏览器状态栏文字从右向左弹出效果代码
Oct 27 Javascript
基于JS+Canves实现点击按钮水波纹效果
Sep 15 Javascript
jQuery ajax 当async为false时解决同步操作失败的问题
Nov 18 Javascript
jquery uploadify如何取消已上传成功文件
Feb 08 Javascript
Angular中实现树形结构视图实例代码
May 05 Javascript
JS实现无缝循环marquee滚动效果
May 22 Javascript
jquery基于layui实现二级联动下拉选择(省份城市选择)
Jun 20 jQuery
Vue实现搜索 和新闻列表功能简单范例
Mar 16 Javascript
vue项目打包后路由错误的解决方法
Apr 13 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中convert_uuencode()与convert_uuencode函数用法实例
2014/11/22 PHP
thinkPHP导出csv文件及用表格输出excel的方法
2015/12/30 PHP
PHP实现cookie跨域session共享的方法分析
2019/08/23 PHP
js类中获取外部函数名的方法与代码
2007/09/12 Javascript
JavaScript中常见获取元素的方法汇总
2015/03/04 Javascript
手机开发必备技巧:javascript及CSS功能代码分享
2015/05/25 Javascript
使用堆实现Top K算法(JS实现)
2015/12/25 Javascript
ie下js不执行的几种可能
2017/02/28 Javascript
详解node中创建服务进程
2017/05/09 Javascript
Javascript es7中比较实用的两个方法示例
2017/07/21 Javascript
细说webpack源码之compile流程-入口函数run
2017/12/26 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
javascript中的event loop事件循环详解
2018/12/14 Javascript
vue+iview使用树形控件的具体使用
2020/11/02 Javascript
详细解读Python中的__init__()方法
2015/05/02 Python
Python编程生成随机用户名及密码的方法示例
2017/05/05 Python
Pyspider中给爬虫伪造随机请求头的实例
2018/05/07 Python
10分钟教你用Python实现微信自动回复功能
2018/11/28 Python
python之信息加密题目详解
2019/06/26 Python
PyCharm导入python项目并配置虚拟环境的教程详解
2019/10/13 Python
Python模块zipfile原理及使用方法详解
2020/08/04 Python
python palywright库基本使用
2021/01/21 Python
韩国爱茉莉太平洋化妆品美国站:Amore Pacific US
2016/10/28 全球购物
LN-CC中国:高端男装和女装的奢侈时尚目的地
2019/09/14 全球购物
意大利顶级奢侈品电商:LUISAVIAROMA(支持中文)
2020/05/26 全球购物
专科应届生求职信
2013/11/24 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
给校长的一封检讨书
2014/09/20 职场文书
民主生活会发言材料
2014/10/20 职场文书
简易离婚协议书范本
2014/10/24 职场文书
2014年导购员工作总结
2014/11/18 职场文书
就业推荐表导师评语
2014/12/31 职场文书
采购内勤岗位职责
2015/04/13 职场文书
社区文明倡议书
2015/04/28 职场文书
Mysql 数据库中的 redo log 和 binlog 写入策略
2022/04/26 MySQL
MySQL中TIMESTAMP类型返回日期时间数据中带有T的解决
2022/12/24 MySQL