`

利用冒泡排序法实现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对象上的使用

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics