利用冒泡排序法实现select option按中文排序组件

/*
*给当前的select元素排序,
*@ param selectObj:当前的select元素
*@ param sortType:排序类型 desc:降序 asc:升序
*/
function sort(selectObj,sortType){   
    var optionsObj=selectObj.options;
    var optionsLength=optionsObj.length;
    var exchang;
    var tempValue1;
    var tempValue2;
    if(StringUtils.isBlank(sortType)){
    	sortType="desc";
    	}
    if(sortType=="desc"){
    	// 降序
	 		 for (i = 0; i < optionsLength; i++) //最多做R.Length-1趟排序 
            {
               exchange = false; //本趟排序开始前,交换标志应为假
                for (j =optionsLength-2; j >= i; j--)
                {  
                   tempValue1=optionsObj[j + 1].text;
                   tempValue2=optionsObj[j].text              
                    if (tempValue1.localeCompare(tempValue2)>0) //<0说明tempValue1大于tempValue2
                    {    //  alert("降交换==="+tempValue1+"--------"+tempValue2);
                       	   optionsObj[j].swapNode(optionsObj[j+1]);
                       	   exchange = true; //发生了交换,故将交换标志置为真      
                    }
                  }
	                if (exchange==false) //本趟排序未发生交换,提前终止算法 
	                {
	                    break;
	                }
            }
        }else{
        	//升序
        	for (i = 0; i < optionsLength; i++) //最多做R.Length-1趟排序 
            {
               exchange = false; //本趟排序开始前,交换标志应为假
                for (j =optionsLength-2; j >= i; j--)
                {  
                   tempValue1=optionsObj[j + 1].text;
                   tempValue2=optionsObj[j].text              
                    if (tempValue1.localeCompare(tempValue2)<0) //<0说明tempValue1小于tempValue2
                    {     // alert("升交换==="+tempValue1+"--------"+tempValue2);
                       	   optionsObj[j].swapNode(optionsObj[j+1]);
                       	   exchange = true; //发生了交换,故将交换标志置为真      
                    }
                  }
	                if (exchange==false) //本趟排序未发生交换,提前终止算法 
	                {
	                    break;
	                }
            }
        	
        	
        	
        	}  
  }  

 

主要的知识点:localeCompare :实现按照中文音序排序

                   swapNode在option对象上的使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值