Chinaunix首页 | 论坛 | 博客
  • 博客访问: 4483588
  • 博文数量: 192
  • 博客积分: 10014
  • 博客等级: 上将
  • 技术积分: 8232
  • 用 户 组: 普通用户
  • 注册时间: 2006-07-21 00:22
文章分类

全部博文(192)

文章存档

2011年(4)

2009年(14)

2008年(174)

我的朋友

分类: 系统运维

2008-07-22 12:41:04

 
 

先来看看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{

             

            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 += "
当前项索引:" + getSelectedIndex();

        innerHtml += "
当前项文本:" + getCurrentOptionText(getSelectedIndex());

        innerHtml += "
当前项值:" + 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; //选中项的值

  

  

  


    

    

    

  


  

使用随机数初始化SelectBox

   clear

  


  

添加option项

  

  


  

删除option项

  

阅读(1906) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~