select 控件操作

来源:互联网 发布:非诚勿扰网络播出时间 编辑:程序博客网 时间:2024/03/28 18:14
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 代码
// 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;  
/*select控件常见操作*/ 

//1、向select里添加option 
function selectOptionAdd(oSelect, sName, sValue) { 
var oOption = document.createElement("option"); 
oOption.appendChild(document.createTextNode(sName)); 

if (arguments.length == 3) { 
oOption.setAttribute("value", sValue); 


oSelect.appendChild(oOption); 

//在select控件的指定位置插入一项 
function addOptionAtPosition(oSelect, optionValue, optionText, position) { 
if (document.all) //IE 

var option = document.createElement("option"); 
option.value = optionValue; 
option.innerText = optionText; 
oSelect.insertBefore(option, oSelect.options[position]); 

else { //其他浏览器 
oSelect.insertBefore(new Option(optionValue, optionText), oSelect.options[position]); 




//2、删除select里的option 
function selectOptionRemoveItem(oSelect) { 
if (oSelect.selectedIndex > -1) {//说明选中 
for (var i = 0; i < oSelect.options.length; i++) { 
if (oSelect.options[i].selected) { 
oSelect.remove(i); 
i = i - 1; //注意这一行 ************************** 




//select移除一项 
function removeOneOption(oSelect, optionValue) { 
var selOptions = oSelect.options; 
for (var i = 0; i < selOptions.length; i++) { 
if (selOptions[i].value == optionValue) { 
oSelect.remove(i); 
break; 




// 清空select所有项目 
function removeSelItems(oSelect) { 
//删除select中所有项 
oSelect.options.length = 0; 


//3、移动select里的option到另一个select中 
function selectsMoveOption(oSelectFrom, oSelectTo) { 
for (var i = 0; i < oSelectFrom.options.length; i++) { 
if (oSelectFrom.options[i].selected) { 
/*if 里的代码也可用下面几句代码代替 var op = oSelectFrom.options[i];oSelectTo.options.add(new Option(op.text, op.value));oSelectFrom.remove(i); */ 
oSelectTo.appendChild(oSelectFrom.options[i]); 
i = i - 1; 




//4、select里option的上下移动 
function selectMoveUp(oSelect) { 
for (var i = 1; i < oSelect.length; i++) {//最上面的一个不需要移动,所以直接从i=1开始 
if (oSelect.options[i].selected) { 
/*在进行上下两项互换时,也可以使用以下代码,但是效率很低,因为每一次的Dom操作都将导致整个页面的重新布局,所以不如直接修改元素的属性值。var oOption = oSelect.options[i];var oPrevOption = oSelect.options[i-1];oSelect.insertBefore(oOption,oPrevOption);向下移动同理 */ 
if (!oSelect.options.item(i - 1).selected) {//上面的一项没选中,上下交换 
var selText = oSelect.options[i].text; 
var selValue = oSelect.options[i].value; 

oSelect.options[i].text = oSelect.options[i - 1].text; 
oSelect.options[i].value = oSelect.options[i - 1].value; 
oSelect.options[i].selected = false; 

oSelect.options[i - 1].text = selText; 
oSelect.options[i - 1].value = selValue; 
oSelect.options[i - 1].selected = true; 





function selectMoveDown(oSelect) { 
for (var i = oSelect.length - 2; i >= 0; i--) {//向下移动,最后一个不需要处理,所以直接从倒数第二个开始 
if (oSelect.options.item(i).selected) { 
if (!oSelect.options.item(i + 1).selected) {//下面的Option没选中,上下互换 
var selText = oSelect.options.item(i).text; 
var selValue = oSelect.options.item(i).value; 

oSelect.options.item(i).text = oSelect.options.item(i + 1).text; 
oSelect.options.item(i).value = oSelect.options.item(i + 1).value; 
oSelect.options.item(i).selected = false; 

oSelect.options.item(i + 1).text = selText; 
oSelect.options.item(i + 1).value = selValue; 
oSelect.options.item(i + 1).selected = true; 




//5、select里option的排序 
/*这里借助Array对象的sort方法进行操作,sort方法接受一个function参数,可以在这个function里定义排序时使用的算法逻辑。*/ 

//因为排序可以按Option的Value排序,也可以按Text排序,这里按Value排序 
function sortItems(oSelect) { 
var selLength = oSelect.options.length; 
var arr = new Array(); 
var arrLength; 
//将所有Option放入array 
for (var i = 0; i < selLength; i++) { 
arr[i] = oSelect.options[i]; 

arrLength = arr.length; 
arr.sort(sortNumber); //排序 
//先将原先的Option删除 
while (selLength--) { 
oSelect.options[selLength] = null; 

//将经过排序的Option放回Select中 
for (i = 0; i < arrLength; i++) { 
selectOptionAdd(oSelect, arr[i].text, arr[i].value); 
//oSelect.add(new Option(arr[i].text,arr[i].value)); 



//6.鼠标悬浮时获取select的options的index 
function getOptionIndex(oSelect) { 
var theIndex = -1; 
if (oSelect.options.length > 0) { 
theIndex = Math.floor((event.offsetY + 2) / (oSelect.offsetHeight / oSelect.options.length)); 
if (theIndex < 0) theIndex = 0; 
else if (theIndex > oSelect.options.length) theIndex = oSelect.options.length; 

return theIndex; 
}
0 0