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=0i
{

        
        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-1i>=0i--)

{

        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" οnclick="initSelectBox()"/> <input type="checkbox" name="chkClear"/>clear

        <hr/>

        <h4>添加option项</h4>

        <input type="button" value="create" οnclick="addOption()"/>

        <hr/>

        <h4>删除option项</h4>

        <input type="button" value="delete" οnclick="removeOption(colls.length-1)"/>

        </BODY>
        本文转自
http://gubo85.bokee.com/viewdiary.16088621.html  
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值