zoukankan      html  css  js  c++  java
  • js select 下拉框学习

    <form id="f">
    <select size="1" name="s">
    <option value="lizi.name">梨子面馆</option>
    <option value="baidu.com">百度</option>
    </select>
    </form>


    <script type="text/javascript">
    <!--
    var f = document.getElementById("f");

    //获得select列表项数目
    document.write(f.s.options.length);
    document.write(f.s.length);

    //当前选中项的下标(从0 开始)(有两种方法)
    //
    如果选择了多项,则返回第一个选中项的下标
    document.write(f.s.options.selectedIndex);
    document.write(f.s.selectedIndex);

    //检测某一项是否被选中
    document.write(f.s.options[0].selected);

    //获得某一项的值和文字
    document.write(f.s.options[0].value);
    document.write(f.s.options[
    1].text);

    //删除某一项
    f.s.options[1= null;

    //追加一项
    f.s.options[f.s.options.length] = new Option("追加的text""追加的value");

    //更改一项
    f.s.options[1= new Option("更改的text""更改的value");
    //也可以直接设置该项的 text 和 value
    //
    -->
    </script>


    //全选列表中的项
    function SelectAllOption(list)
    {
    for (var i=0; i<list.options.length; i++)
    {
    list.options[i].selected 
    = true;
    }

    }



    //反选列表中的项
    function DeSelectOptions(list)
    {
    for (var i=0; i<list.options.length; i++)
    {
    list.options[i].selected 
    = !list.options[i].selected;
    }

    }



    //返回列表中选择项数目
    function GetSelectedOptionsCnt(list)
    {
    var cnt = 0;
    var i = 0;
    for (i=0; i<list.options.length; i++)
    {
    if (list.options[i].selected)
    {
    cnt
    ++;
    }

    }


    return cnt;
    }



    //清空列表
    function ClearList(list)
    {
    while (list.options.length > 0)
    {
    list.options[
    0= null;
    }

    }



    //删除列表选中项
    //
    返回删除项的数量
    function DelSelectedOptions(list)
    {
    var i = 0;
    var deletedCnt = 0;
    while (i < list.options.length)
    {
    if (list.options[i].selected)
    {
    list.options[i] 
    = null;
    deletedCnt
    ++;
    }

    else
    {
    i
    ++;
    }

    }


    return deletedCnt;
    }

    //此函数查找相应的项是否存在
    //
    repeatCheck是否进行重复性检查
    //
    若为"v",按值进行重复值检查
    //
    若为"t",按文字进行重复值检查
    //
    若为"vt",按值和文字进行重复值检查
    //
    其它值,不进行重复性检查,返回false
    function OptionExists(list, optText, optValue, repeatCheck)
    {
    var i = 0;
    var find = false;

    if (repeatCheck == "v")
    {
    //按值进行重复值检查
    for (i=0; i<list.options.length; i++)
    {
    if (list.options[i].value == optValue)
    {
    find 
    = true;
    break;
    }

    }

    }

    else if (repeatCheck == "t")
    {
    //按文字进行重复检查
    for (i=0; i<list.options.length; i++)
    {
    if (list.options[i].text == optText)
    {
    find 
    = true;
    break;
    }

    }

    }

    else if (repeatCheck == "vt")
    {
    //按值和文字进行重复检查
    for (i=0; i<list.options.length; i++)
    {
    if ((list.options[i].value == optValue) && (list.options[i].text ==

    optText))
    {
    find 
    = true;
    break;
    }

    }

    }


    return find;
    }



    //向列表中追加一个项
    //
    list 是要追加的列表
    //
    optText 和 optValue 分别表示项的文字和值
    //
    repeatCheck 是否进行重复性检查,参见 OptionExists
    //
    添加成功返回 true,失败返回 false
    function AppendOption(list, optText, optValue, repeatCheck)
    {
    if (!OptionExists(list, optText, optValue, repeatCheck))
    {
    list.options[list.options.length] 
    = new Option(optText, optValue);
    return true;
    }

    else
    {
    return false;
    }

    }



    //插入项
    //
    index 插入位置,当插入位置 >= 列表现有项数量时,其作用相当于不进行重复检

    查的追加项
    //optText 和 optValue 分别表示项的文字和值
    function InsertOption(list, index, optText, optValue)
    {
    var i = 0;
    for (i=list.options.length; i>index; i--)
    {
    list.options[i] 
    = new Option(list.options[i-1].text, list.options[i-

    1].value);
    }


    list.options[index] 
    = new Option(optText, optValue);
    }

    //将一个列表中的项导到另一个列表中
    //
    repeatCheck是否进行重复性检查,参见OptionExists
    //
    deleteSource项导到目标后,是否删除源列表中的项
    //
    返回影响的项数量
    function ListToList(sList, dList, repeatCheck, deleteSource)
    {
    //所影响的行数
    var lines = 0;
    var i = 0;
    while (i<sList.options.length)
    {
    if (sList.options[i].selected && AppendOption(dList, sList.options[i].text,

    sList.options[i].value, repeatCheck))
    {
    //添加成功
    lines++;
    if (deleteSource)
    {
    //删除源列表中的项
    sList.options[i] = null;
    }

    else
    {
    i
    ++;
    }

    }

    else
    {
    i
    ++;
    }

    }


    return lines;
    }



    //列表中选中项上移
    function MoveSelectedOptionsUp(list)
    {
    var i = 0;
    var value = "";
    var text = "";
    for (i=0; i<(list.options.length-1); i++)
    {
    if (!list.options[i].selected && list.options[i+1].selected)
    {
    value 
    = list.options[i].value;
    text 
    = list.options[i].text;
    list.options[i] 
    = new Option(list.options[i+1].text, list.options

    [i
    +1].value);
    list.options[i].selected 
    = true;
    list.options[i
    +1= new Option(text, value);
    }

    }

    }



    //列表中选中项下移
    function MoveSelectedOptionsDown(list)
    {
    var i = 0;
    var value = "";
    var text = "";
    for (i=list.options.length-1; i>0; i--)
    {


    if (!list.options[i].selected && list.options[i-1].selected)
    {
    value 
    = list.options[i].value;
    text 
    = list.options[i].text;
    list.options[i] 
    = new Option(list.options[i-1].text, list.options[i-

    1].value);
    list.options[i].selected 
    = true;
    list.options[i
    -1= new Option(text, value);
    }

    }

    }
     
  • 相关阅读:
    Vasya and Endless Credits CodeForces
    Dreamoon and Strings CodeForces
    Online Meeting CodeForces
    数塔取数 基础dp
    1001 数组中和等于K的数对 1090 3个数和为0
    1091 线段的重叠
    51nod 最小周长
    走格子 51nod
    1289 大鱼吃小鱼
    POJ 1979 Red and Black
  • 原文地址:https://www.cnblogs.com/qgf522/p/1274305.html
Copyright © 2011-2022 走看看