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 继承详解(一)
Jul 13 Javascript
jquery用get实现ajax在ie里面刷新不进入后台解决方法
Aug 12 Javascript
Jquery通过Ajax访问XML数据的小例子
Nov 18 Javascript
js实现鼠标感应图片展示的方法
Feb 27 Javascript
使用jquery清空、复位整个输入域
Apr 02 Javascript
PhantomJS快速入门教程(服务器端的 JavaScript API 的 WebKit)
Aug 06 Javascript
如何用js实现鼠标向上滚动时浮动导航
Jul 18 Javascript
js实现无缝循环滚动
Jun 23 Javascript
JS html时钟制作代码分享
Mar 03 Javascript
详解angular用$sce服务来过滤HTML标签
Apr 11 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
Aug 30 Javascript
实例详解ztree在vue项目中使用并且带有搜索功能
Aug 24 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中文本数据翻页(留言本翻页)
2006/10/09 PHP
Windows下的PHP 5.3.x安装 Zend Guard Loader教程
2014/09/06 PHP
Yii2框架dropDownList下拉菜单用法实例分析
2016/07/18 PHP
Ajax异步提交表单数据的说明及方法实例
2013/06/22 Javascript
同域jQuery(跨)iframe操作DOM(示例代码)
2013/12/13 Javascript
Angular用来控制元素的展示与否的原生指令介绍
2015/01/07 Javascript
JS+CSS实现仿新浪微博搜索框的方法
2015/02/24 Javascript
jQuery实现自定义右键菜单的树状菜单效果
2015/09/02 Javascript
javascript单页面手势滑屏切换原理详解
2016/03/21 Javascript
文本框只能输入数字的实现方法(兼容IE火狐)
2016/06/25 Javascript
JavaScript实现类似拉勾网的鼠标移入移出效果
2016/10/27 Javascript
JavaScript中in和hasOwnProperty区别详解
2017/08/04 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
node简单实现一个更改头像功能的示例
2017/12/29 Javascript
JS 数组和对象的深拷贝操作示例
2020/06/06 Javascript
JavaScript实现页面高亮操作提示和蒙板
2021/01/04 Javascript
详解Vite的新体验
2021/02/22 Javascript
python条件和循环的使用方法
2013/11/01 Python
Python中List.count()方法的使用教程
2015/05/20 Python
python解析xml文件实例分析
2015/05/27 Python
利用numpy+matplotlib绘图的基本操作教程
2017/05/03 Python
浅谈dataframe中更改列属性的方法
2018/07/10 Python
python数据结构之线性表的顺序存储结构
2018/09/28 Python
Python实现定期检查源目录与备份目录的差异并进行备份功能示例
2019/02/27 Python
python join方法使用详解
2019/07/30 Python
使用PyCharm安装pytest及requests的问题
2020/07/31 Python
什么是会话Bean
2015/05/14 面试题
淘宝中秋节活动方案
2014/01/31 职场文书
班风口号
2014/06/18 职场文书
实验室的标语
2014/06/20 职场文书
员工激励培训演讲稿
2014/09/16 职场文书
2016年会领导致辞稿
2015/07/29 职场文书
母亲节主题班会
2015/08/14 职场文书
英语导游欢迎词
2015/09/30 职场文书
小学生作文写作技巧100例,非常实用!
2019/07/08 职场文书
Python函数中apply、map、applymap的区别
2021/11/27 Python