j9国际站|(官网)点击登录

新疆j9九游会

本站首页 j9九游会 乐成案例 公司新闻 公司简介 客服中心 软件技能 网站建立
  您如今的地位: 新疆二域j9九游会公司 >> 开辟言语 >> 文章注释

搜集整理的javascript select操纵的例子

   整理了一篇关于avascript - Select操纵的技能文章,一同看看。  
近来在看一本书,Wrox.Professional JavaScript™ for Web Developers,是老赵在他的Ajax深化浅出系列讲座中提到过的一本书。实在这本书不停都在我的电脑里,只是没仔细看过。不停没怎样很正式的学习过javascript,偶然用到的时分就到网上找些代码,改吧改吧就用了,这次重新开端学起,细细看上去,还真是有不少劳绩,乃至有点喜好上javascript了。
      如今步入正题,看到书中讲Form元素的操纵,像Textbox、Button、Label等,都照旧比力复杂的,只是看到Select时,略微有些庞大,于是就想细心研讨研讨,于是就有了这篇文章。Select的操纵包罗静态添加、删除、挪动、获取选中项的值、排序等等,如今逐一报告。

1、向Select里添加Option
function fnAddItem(text,value)
        {
            var selTarget = document.getElementById("selID");

            selTarget.Add(new Option("text","value"));
        }

2、删除Select里的Option
function fnRemoveItem()
        {
            var selTarget = document.getElementById("selID");

            if(selTarget.selectedIndex > -1)
            {//阐明选中
                for(var i=0;i<selTarget.options.length;i++)
                {
                    if(selTarget.options[i].selected)
                    {
                        selTarget.remove(i);
                       
                        i = i - 1;//留意这一行
                    }
                }
            }
        }
3、挪动Select里的Option到另一个Select中
        function fnMove(fromSelectID,toSelectID)
        {
            var from = document.getElementById(fromSelectID);
            var to = document.getElementById(toSelectID);
           
            for(var i=0;i<from.options.length;i++)
            {
                if(from.options[i].selected)
                {
                    to.appendChild(from.options[i]);
                    i = i - 1;
                }
            }
        }    if 里的代码也可用上面几句代码取代
  var op = from.options[i];
  to.options.add(new Option(op.text, op.value));
  from.remove(i);
4、Select里Option的上下挪动
        function fnUp()
        {  
            var sel = document.getElementById("selID");
            for(var i=1; i < sel.length; i++)
            {//最下面的一个不必要挪动,以是间接从i=1开端
                if(sel.options[i].selected)
                {
                    if(!sel.options.item(i-1).selected)
                    {//下面的一项没选中,上下互换
                          var selText = sel.options[i].text;
                          var selValue = sel.options[i].value;
                         
                          sel.options[i].text = sel.options[i-1].text;
                          sel.options[i].value = sel.options[i-1].value;
                          sel.options[i].selected = false;
                         
                          sel.options[i-1].text = selText;
                          sel.options[i-1].value = selValue;
                          sel.options[i-1].selected=true;
                    }
                }
            }
        }在举行上下两项交换时,也可以利用以下代码,但服从很低,由于每一次的Dom操纵都将招致整个页面的重新结构,以是不如间接修正元素的属性值。
                        var oOption = sel.options[i]
                        var oPrevOption = sel.options[i-1]
                        sel.insertBefore(oOption,oPrevOption);向下挪动同理
function fnDown()
        {
            var sel = fnGetTarget("selLeftOrRight");
            for(var i=sel.length -2; i >= 0; i--)
            {//向下挪动,最初一个不必要处置,以是间接从倒数第二个开端
                if(sel.options.item(i).selected)
                {
                    if(!sel.options.item(i+1).selected)
                    {//上面的Option没选中,上下交换
                          var selText = sel.options.item(i).text;
                          var selValue = sel.options.item(i).value;
                         
                          sel.options.item(i).text = sel.options.item(i+1).text;
                          sel.options.item(i).value = sel.options.item(i+1).value;
                          sel.options.item(i).selected = false;
                         
                          sel.options.item(i+1).text = selText;
                          sel.options.item(i+1).value = selValue;
                          sel.options.item(i+1).selected=true;
                    }
                }
            }
        }
5、Select里Option的排序
这里借助Array工具的sort办法举行操纵,sort办法承受一个function参数,可以在这个function里界说排序时利用的算法逻辑。
array.sort([compareFunction]) 里compareFunction承受两个参数(p1,p2),sort操纵举行时,array工具会每次传两个值出来,举行比力;compareFunciton必需前往一个整数值:当前往值>0时,p1会排在p2前面;前往值<0时,p1会排在p2后面;前往值=0时,不举行操纵。
比方: function fnCompare(a,b)
        {
            if (a < b)
                return -1;
            if (a > b)
                return 1;
            return 0;
        }
var arr = new Array();
//add some value into arr
arr.sort(fnCompare);
//这里sort的操纵后果便是arr里的项按由小到大的升序排序
//假如把fnCompare里改为
//if (a < b)
//  return 1;
//if (a > b)
//  return -1;
//return 0;
//则sort的后果是降序分列
好,上面便是对Select里Option的排序
//由于排序可以按Option的Value排序,也可以按Text排序,这里只演示按Value排序
function sortItem()
{
    var sel = document.getElementById("selID");
    var selLength = sel.options.length;
    var arr = new Array();
    var arrLength;

    //将一切Option放入array
    for(var i=0;i<selLength;i++)
    {
        arr[i] = sel.options[i];
    }
    arrLength = arr.length;

    arr.sort(fnSortByValue);//排序
    //先将原先的Option删除
    while(selLength--)
    {
        sel.options[selLength] = null;
    }
    //将颠末排序的Option放回Select中
    for(i=0;i<arrLength;i++)
    {
        sel.add(new Option(arr[i].text,arr[i].value));
    }
}
function fnSortByValue(a,b)
{
    var aComp = a.value.toString();
    var bComp = b.value.toString();

    if (aComp < bComp)
        return -1;
    if (aComp > bComp)
        return 1;
    return 0;
}
排序时还可以有更多选项,好比将value值看做Integer或是String举行排序,失掉的后果是纷歧样的。篇幅限定,不在多做介绍。

 

作者:茉莉老师 | 文章泉源:cnblogs | 更新>###6:55

  • 上一篇文章:

  • 下一篇文章:

  • 相干文章:
    javascript中createTextRange怎样利用
    怎样利用JavaScript判别欣赏器范例代码
    看看javascript是怎样画图的
    怎样在JavaScript完成弹出层结果
    JAVASCRIPT怎样判别巨细写字母
    J2EE开辟中的错误处置
    javascript的function的总结
    Javascript拜访html页面的控件
    软件技能
    · 开辟言语
    · Java技能
    · .Net技能
    · 数据库开辟
    最新文章  
    ·搜集整理的asp.net的验证方
    ·种种FOR循环布局的整理
    ·软件项目开辟中应该思索那
    ·搜集整理的javascript sel
    ·j9九游会中项目司理有那些
    ·学习怎样在Lambda表达式进
    ·C++底子知识:布局体数据的
    ·C#完成短信发送步伐的例子
    ·sun近来修补了一局部java的
    ·rss定制的别的一种完成方法
    ·delphi完成使用arp诈骗来实
    ·底子学习:基于WF的流程框
    ·网络编程中怎样得知一次数
    ·怎样逆序输入单链表?
    ·j9九游会历程中的功能设计
    关于j9九游会 | j9九游会 | 下载试用 | 客服中心 | 联系j9九游会 | 相关单位 | 网站舆图 | 新疆电子舆图 | RSS订阅
    版权一切 © 2016 新疆二域j9九游会网 www.k8w.net All Rights Reserved
    新疆j9九游会>###、4811639.
    ### ;>###华联大厦A-5C 邮编:830000