`
zengshaotao
  • 浏览: 787195 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

select

 
阅读更多

 

<select name="bigclass" id="id"

<option value="" selected="selected">南昌</option>

<option value="4">上饶</option>

</select>

 

document.getElementById("id").options[document.getElementById("id").selectedIndex].text

 


一、新增一个option

    var sel=document.getElementById("select的id");

    var op=document.createElement("option");

     op.value=值;

     op.text=显示文本;

     sel.add(op);

二、删除一个option

    var sel=document.getElementById("typelist");

if(sel.selectedIndex==-1)

   alert("请选中要删除的项!");

for(var i=0;i<sel.options.length;i++){

if(sel.options[i].selected){

sel.options.remove(i);

break;

}

}

三、清空select的所有option

   var citySel=document.getElementById("select的id");

   citySel.options.length=0;

 

四、获得选中项的值

    var citySel=document.getElementById("select的id");

    var selectedValue=citySel.value;

五、获得当前选中项的索引

    var selectedIndex=document.all.objSelect.selectedIndex;

六、设置select的当前选中项

    方法1(单个select): document.getElementById("products_type_id").selectedIndex=1;

    方法2(级联select如省市级联):

     var province_sel=document.getElementById("province");//获得省select

     var city_sel=document.getElementById("city");//获得市select

for(var i=0;i<province_sel.options.length;i++){

if(province_sel.options[i].value=="从数据库获取的省的值"){

    province_sel.options[i].selected=true;

break;

}

}

initCity("从数据库获取的省的值");//初始化市select

for(var i=0;i<city_sel.options.length;i++){

if(city_sel.options[i].value=="${city}"){

    city_sel.options[i].selected=true;

break;

}

}

七、创建select动态设置选中项

   var sel=document.getElementById("other_state");

     var sel_val=document.getElementById("other_media_id").innerHTML;

   

for(var obj in data){

var id=data[obj]["other_media_id"]; 

var name=data[obj]["other_media_name"];

var op=document.createElement("option");

op.setAttribute("value",id);

op.appendChild(document.createTextNode(name));    

           if(id==sel_val){

op.setAttribute("selected","true");

   }

            sel.appendChild(op);

}

 

 

 

 

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进行排序,得到的结果是不一样的。

 

分享到:
评论

相关推荐

    select美化HTML的select标签的原始样式,并且不影响原始select的事件方法调用

    在网页设计中,`&lt;select&gt;` 标签用于创建下拉列表,但其默认样式往往不符合现代网页的美观要求。为了提升用户体验并保持与原始HTML`&lt;select&gt;` 标签的功能兼容性,开发者通常会使用自定义样式来美化下拉菜单。本主题...

    使select可以输入

    自制的jquery插件,只需要一行代码,即可将select控件变成一个即可以输入也可以选择的元素,输入时也会有智能提示。对原来的select的操作完全没有改变,取值依然是取select的值,设置选中,添加项删除项等等都没有...

    layui 监听select选择 获取当前select的ID名称方法

    监听select选择 form.on('select(filter)', function(data){ console.log(data.elem); //得到select原始DOM对象 console.log(data.value); //得到被选中的值 console.log(data.othis); //得到美化后的DOM对象 })...

    实现可编辑的select

    在网页开发中,选择框(`&lt;select&gt;`)通常用于让用户在预设的选项中进行选择。然而,标准的HTML `select` 元素并不支持直接编辑,即用户无法自由输入新的选项。为了提供这种功能,开发者通常会利用JavaScript库来实现...

    select2.mim.js and select2.min.css.zip

    本文将详细介绍Select2及其相关文件`select2.min.js`和`select2.min.css`,以及它们如何在项目中发挥重要作用。 Select2是一款强大的JavaScript库,它能够将普通的HTML `&lt;select&gt;`元素转变为功能丰富的选择器。通过...

    select 带搜索功能

    1. Select2:Select2 是一个流行的jQuery插件,它不仅提供了搜索功能,还有分页、多选、远程数据加载等功能。示例代码如下: ```html &lt;select class="select2" style="width: 100%;"&gt; &lt;option value="option1"&gt;...

    select2ztree.zip

    《基于Select2与jQuery-ZTree实现的树形下拉框详解》 在现代网页开发中,用户界面的设计和交互体验愈发重要。一个优秀的界面能够提升用户的操作效率,增强产品的吸引力。今天,我们将深入探讨如何利用Select2和...

    select下拉框添加搜索功能

    在网页开发中,`select`下拉框是常见的用户交互元素,用于提供一系列选项供用户选择。然而,随着用户体验需求的提升,单纯的下拉选择已无法满足所有场景,特别是当选项众多时。为了提高用户的操作效率,我们常常需要...

    jquery select2组件

    **jQuery Select2组件详解** `jQuery Select2`是一款强大的、高度可定制的下拉选择框插件,它在原生HTML `&lt;select&gt;` 元素的基础上提供了丰富的功能和优秀的用户体验。这款组件广泛应用于网页开发中,使得传统的单选...

    jquery实现select互斥联动

    在本示例中,我们将探讨如何使用jQuery实现“select”元素的互斥联动效果,这是一种常见的表单控件交互设计,常用于多级筛选或配置场景。 一、基本概念 1. jQuery:jQuery 是一个高效、简洁而易用的JavaScript库,...

    select option带自定义图片

    以下是一个关于如何在`&lt;select&gt;`和`&lt;option&gt;`中添加自定义图片的详细教程。 首先,我们需要理解HTML基础。`&lt;select&gt;`元素创建一个可选列表,用户可以选择其中的一个或多个选项。`&lt;option&gt;`元素定义了下拉列表中的一...

    Select2的插件下载.zip

    **Select2插件详解** Select2是一款非常流行的JavaScript库,基于jQuery设计,它的主要目标是为HTML中的`&lt;select&gt;`元素提供一个强大的替代方案。在网页开发中,原生的`&lt;select&gt;`元素功能有限,样式单一,而Select2...

    xm-select,一款简单多选的select插件

    《XM-SELECT:一款高效实用的多选下拉框插件》 在Web开发中,Select组件是不可或缺的一部分,尤其在处理多选场景时,它的便捷性和灵活性显得尤为重要。XM-SELECT就是这样一款专为解决多选问题而设计的插件,它以其...

    LayUi组件TableSelect

    在LayUI中,TableSelect是一个强大的组件,它结合了表格与下拉选择框的功能,提供了更丰富的交互体验。这个组件在JavaScript开发中特别适用于处理数据表中的选择操作,尤其是在需要对多选数据进行管理的场景下。 ...

    下拉多选插件ySelect.js.rar

    下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选插件ySelect.js.rar 下拉多选...

    layui问题之模拟select点击事件的实例讲解

    在Web开发中,模拟select元素的点击事件是一项常见的需求,尤其是当我们希望在不直接与页面交互的情况下改变选项值时。本文将通过实例讲解来阐述如何在使用layui框架的情况下,模拟select的点击事件。 ### 标题知识...

    Bootstrap框架下下拉框select搜索功能

    &lt;select id="bs3Select" class="selectpicker show-tick form-control" multiple data-live-search="true"&gt; &lt;option&gt;cow &lt;option&gt;bull &lt;option class="get-class" disabled&gt;ox &lt;/select&gt; ``` 在页面加载完成后,...

    用JavaScript来美化HTML的select标签的下拉列表效果

    在现代网页设计中,select下拉列表是实现用户交互的一项基本元素,但在不同的浏览器中,其样式表现差异较大,且在自定义样式方面存在限制,尤其是无法完全通过CSS控制其外观。随着Web标准的推进,浏览器厂商对HTML...

    bootstrap select2插件用ajax来获取和显示数据的实例

    接下来,通过jQuery代码调用Select2插件,对特定的select元素进行初始化。在这个过程中,我们设置了几个关键的配置选项。"placeholder"用于给select元素提供一个默认的提示信息,"tags"允许用户输入自定义的选项,...

    可编辑的select下拉框

    在网页开发中,`&lt;select&gt;`元素通常用于创建下拉列表,但它的功能相对有限,不支持用户自定义输入或实时搜索。为了增强用户体验并提供更丰富的交互性,开发人员通常会利用JavaScript库或插件来扩展这个基本的HTML元素...

Global site tag (gtag.js) - Google Analytics