现在的位置: 首页 > 综合 > 正文

Javascript 操作select控件(新增、修改、删除、选中、清空、判断存在等)

2017年12月02日 ⁄ 综合 ⁄ 共 3968字 ⁄ 字号 评论关闭

1.判断select选项中 是否存在Value="paraValue"的Item
2.向select选项中 加入一个Item
3.从select选项中 删除一个Item
4.删除select中选中的项
5.修改select选项中 value="paraValue"的text为"paraText"
6.设置select中text="paraText"的第一个Item为选中
7.设置select中value="paraValue"的Item为选中
8.得到select的当前选中项的value
9.得到select的当前选中项的text
10.得到select的当前选中项的Index
11.清空select的项

Js代码

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.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.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.selected == true){      
            objSelect.options = 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.value == objItemValue) {          
                objSelect.options.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.text == objItemText) {          
            objSelect.options.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;

function delOption(oSel){ // 删除option  if (oSel.selectedIndex>=0) {  oSel.options.remove(oSel.selectedIndex);  } else {  alert("请先至少选择一个关键字");  };}

上述代码在IE下正常运行,但在Firefox下却报错:
oSel.options.remove is not a function.

最后发现只要作一下小改动就可兼容IE和FF :)
改动后的代码如下:

function delOption(oSel){ // 删除option  if (oSel.selectedIndex>=0) {  oSel.remove(oSel.selectedIndex);  } else {  alert("请先至少选择一个关键字");  };}

抱歉!评论已关闭.