本文主要是介绍js 对 select 中的 option 进行中文排序问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
从数据库中读取出 select 列表的 option 值是按照数据库中的顺序进行排列的,有时需要对 optiion 的中文按照字母序进行排序,这时需要注意的问题是 option 的 text 值 和 value 值要同时排序。这样提交 form 表单将数据提交到数据库时就能按照 正确的 value 值进行插入数据了。
下面是一个写好的 sortOptions(oSel) 对 option进行排序的函数, oSel 为 select 的名字。
var select = document.getElementById('select') ;
select_root.options.length = 0 ; // 长度清零// 添加 " --市-- "
var cityOption = document.createElement("option") ;
cityOption.innerText = "--市--" ;
select_root.appendChild(cityOption) ;for(var i = 0; i < xSel.length; i ++) {
<span style="white-space:pre"> </span>var xValue = xSel[i].childNodes[0].firstChild.nodeValue; var xText = xSel[i].childNodes[1].firstChild.nodeValue ;var option = new Option(xText, xValue) ;try{select_root.add(option) ;}catch(e){}
}// 排序
sortOptions(select_root) ;
function sortOptions(oSel) {var ln = oSel.options.length ;var txt = new Array() ;var val = new Array() ;for(var i = 0; i < ln; i ++) {txt[i] = oSel.options[i].text ;val[i] = oSel.options[i].value ;}toSort(txt, val) ;oSel.options.length = 0 ;for(var i = 0; i < txt.length; i ++) {oSel.add(new Option(txt[i], val[i])) ;}}function toSort(txt, val) {var j, k, temp ;for(var i = 1; i < txt.length-1; i ++) {k = i ;for(var j = i+1; j < txt.length; j ++ ) if( txt[k].localeCompare(txt[j]) == 1 ){k = j ;}temp = txt[k] ;txt[k] = txt[i] ;txt[i] = temp ;temp = val[k] ;val[k] = val[i] ;val[i] = temp ;}
}
这篇关于js 对 select 中的 option 进行中文排序问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!