怎么用js操作select列表

JavaScript018

怎么用js操作select列表,第1张

判断select选项中 是否存在Value="paraValue"的Item 

向select选项中 加入一个Item 

从select选项中 删除一个Item 

删除select中选中的项 

修改select选项中 value="paraValue"的text为"paraText" 

设置select中text="paraText"的第一个Item为选中 

设置select中value="paraValue"的Item为选中 

得到select的当前选中项的value 

得到select的当前选中项的text 

得到select的当前选中项的Index 

清空select的项 

js 代码如下:

// 1.判断select选项中 是否存在Value="paraValue"的Item        

function jsSelectIsExitItem(objSelect, objItemValue) {        

    var isExit = false        

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

        if (objSelect.options[i].value == objItemValue) {        

            isExit = true        

            break        

        }        

    }        

    return isExit        

}         

   

// 2.向select选项中 加入一个Item        

function jsAddItemToSelect(objSelect, objItemText, objItemValue) {        

    //判断是否存在        

    if (jsSelectIsExitItem(objSelect, objItemValue)) {        

        alert("该Item的Value值已经存在")        

    } else {        

        var varItem = new Option(objItemText, objItemValue)      

        objSelect.options.add(varItem)     

        alert("成功加入")     

    }        

}        

   

// 3.从select选项中 删除一个Item        

function jsRemoveItemFromSelect(objSelect, objItemValue) {        

    //判断是否存在        

    if (jsSelectIsExitItem(objSelect, objItemValue)) {        

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

            if (objSelect.options[i].value == objItemValue) {        

                objSelect.options.remove(i)        

                break        

            }        

        }        

        alert("成功删除")        

    } else {        

        alert("该select中 不存在该项")        

    }        

}    

   

   

// 4.删除select中选中的项    

function jsRemoveSelectedItemFromSelect(objSelect) {        

    var length = objSelect.options.length - 1    

    for(var i = length i >= 0 i--){    

        if(objSelect[i].selected == true){    

            objSelect.options[i] = null    

        }    

    }    

}      

   

// 5.修改select选项中 value="paraValue"的text为"paraText"        

function jsUpdateItemToSelect(objSelect, objItemText, objItemValue) {        

    //判断是否存在        

    if (jsSelectIsExitItem(objSelect, objItemValue)) {        

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

            if (objSelect.options[i].value == objItemValue) {        

                objSelect.options[i].text = objItemText        

                break        

            }        

        }        

        alert("成功修改")        

    } else {        

        alert("该select中 不存在该项")        

    }        

}        

   

// 6.设置select中text="paraText"的第一个Item为选中        

function jsSelectItemByValue(objSelect, objItemText) {            

    //判断是否存在        

    var isExit = false        

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

        if (objSelect.options[i].text == objItemText) {        

            objSelect.options[i].selected = true        

            isExit = true        

            break        

        }        

    }              

    //Show出结果        

    if (isExit) {        

        alert("成功选中")        

    } else {        

        alert("该select中 不存在该项")        

    }        

}        

   

// 7.设置select中value="paraValue"的Item为选中    

document.all.objSelect.value = objItemValue    

       

// 8.得到select的当前选中项的value    

var currSelectValue = document.all.objSelect.value    

       

// 9.得到select的当前选中项的text    

var currSelectText = document.all.objSelect.options[document.all.objSelect.selectedIndex].text    

       

// 10.得到select的当前选中项的Index    

var currSelectIndex = document.all.objSelect.selectedIndex    

       

// 11.清空select的项    

document.all.objSelect.options.length = 0

下面通过两种方式使用js来进行获取select

具体代码如下:

var

obj = document.getElementByIdx_x(”testSelect”)

定位idvar index =

obj.selectedIndex

选中索引var text = obj.options[index].text

选中文本var

value = obj.options[index].value

选中值jQuery中获得选中select值第一种方式$('#testSelect

option:selected').text()

选中的文本$('#testSelect option:selected')

.val()

选中的值$("#testSelect ").get(0).selectedIndex

索引

第二种方式$("#tesetSelect").find("option:selected").text()//选中的文

本…….val()…….get(0).selectedIndex

select属于浏览器内置组件,标准CSS无法调整其样式。

你可以使用div来模拟select。

首先创建一个<div />来模拟下拉框。

<div class="mySelect"></div>

然后在里面加上显示选中值的<div />和模拟三角的<div />以及下拉列表<ul />

<div class="mySelect">

    <div class="mySelectValue"></div>

    <div class="mySelectDropdown"></div>

    <ul class="mySelectOptions"></ul>

</div>

你可以用CSS来设置自己喜欢的样式。

接下来就是用Javascript来控制模拟的下拉框了。(这里为了方便,使用了jQuery)

// 创建临时DOM,内容为模拟的下拉框(其中省略的部分为上面写的html代码)

var $mySelect = $('<div class="mySelect">...</div>')

// 把原来select有的样式复制到模拟的下拉框上

$mySelect.attr('class', $('#select').attr('class'))

$mySelect.attr('style', $('#select').attr('style'))

// 把原来select的选项复制到模拟的下拉框中

$('#select option').each(function () {

    var value = $(this).attr('value'),

        name  = $(this).html()

    $mySelect.find('.mySelectOptions').append('<li class="mySelectOption" data-id="' + value + '">' + name + '</li>')

})

// 在模拟下拉框中设置选中的值

$mySelect.find('.mySelectValue').html($('#select option:selected').html())

// 隐藏原有的select

$('#select').hide()

// 给模拟的下拉框绑定事件

$mySelect

    .on('click', function (e) {

        // 阻止点击事件向上冒泡

        e.stopImmediatePropagation()

        // 反转下拉列表的显示

        $('.mySelectOptions', this).toggle()

        // 给原有的select模拟点击事件

        $('#select').trigger('click')

    })

    .on('click', '.mySelectOption', function (e) {

        // 阻止点击事件向上冒泡

        e.stopImmediatePropagation()

        // 把选中的值显示到模拟的下拉框中

        $mySelect.find('.mySelectValue').html($(this).html())

        // 隐藏下拉列表

        $mySelect.find('.mySelectOptions').hide()

        // 把选中的值给到原来的select中

        $('#select').val($(this).data('id'))

        // 给原来的select模拟change事件

        $('#select').trigger('change')

    })

// 基本功能就到此了。其中可以缓存jQuery对象来优化,还能添加焦点事件,键盘事件等,按自己的需求慢慢修改吧。