var
lastSortHeaderTD; var sortIndex; var tableID = "xx"; var
trs = $(tableID).subTag("tr"); trs.shift(); function mySort(index,
type,td) { var className = td.getAttribute("class"); if
(lastSortHeaderTD) { if (lastSortHeaderTD == td)
{ if (className == "sort_asc")
td.className = "sort_desc"; else
td.className = "sort_asc"; } else
{ lastSortHeaderTD.className = "";
td.className = "sort_asc"; } }
else td.className = "sort_asc"; lastSortHeaderTD =
td; if (index == sortIndex) trs.reverse();
else trs.sort(getSortFun(index, type)); var df =
document.createDocumentFragment(); for (var i = 0; i < trs.length;
i++) { if (i > 0 && trs.length % 2 == 1)
{ if (i % 2 == 0) { trs[i].className =
"grid3_row grid3_row_alt"; } else
{ trs[i].className = "grid3_row";
} } df.appendChild(trs[i]); }
$(tableID).tBodies[0].appendChild(df); sortIndex =
index; } function getSortFun(index, type) { var
convertType = function(value, type) { switch (type)
{ case "int": return
parseInt(value); case "float": return
parseFloat(value); case "date": return
new Date(Date.parse(value)); default: //
return value.toString();
改为,
var a=tr1.cells[index].firstChild.firstChild.nodeValue;
var b=tr2.cells[index].firstChild.firstChild.nodeValue;
return a.localeCompare(b);
} };
//行完整
return function(tr1, tr2) { var v1 =
convertType(tr1.cells[index].firstChild.firstChild.nodeValue,
type); var v2 =
convertType(tr2.cells[index].firstChild.firstChild.nodeValue,
type); if (v1 < v2) return -1;
else if (v1 > v2) return 1;
else return 0; } }
定义和用法
用本地特定的顺序来比较两个字符串。
语法
stringObject.localeCompare(target)
参数 |
描述 |
target |
要以本地特定的顺序与 stringObject 进行比较的字符串。 |
返回值
说明比较结果的数字。如果 stringObject 小于 target,则 localeCompare() 返回小于 0 的数。如果
stringObject 大于 target,则该方法返回大于 0 的数。如果两个字符串相等,或根据本地排序规则没有区别,该方法返回 0。
说明
把 < 和 > 运算符应用到字符串时,它们只用字符的 Unicode 编码比较字符串,而不考虑当地的排序规则。以这种方法生成的顺序不一定是正确的。例如,在西班牙语中,其中字符 “ch” 通常作为出现在字母 “c” 和 “d” 之间的字符来排序。
localeCompare() 方法提供的比较字符串的方法,考虑了默认的本地排序规则。ECMAscript 标准并没有规定如何进行本地特定的比较操作,它只规定该函数采用底层操作系统提供的排序规则。
实例
在本例中,我们将用本地特定排序规则对字符串数组进行排序:
var str; str.sort (function(a,b){return a.localeCompare(b)})
|