jQuery的字母排序插件ListNav不支持中文,比较头疼,找到一个取中文首字母的JS函数,再配合ListNav,可以完善支持中文按首字母进行排序。
如下两步,可实现此功能
第一步:添加获取中文首字母函数
var strChineseFirstPY = ""; //此处收录了375个多音字,数据来自于http://www.51window.net/page/pinyin var oMultiDiff={}; //参数,中文字符串 //返回值:拼音首字母串数组 function makePy(str){ if(typeof(str) != "string") throw new Error(-1,"函数makePy需要字符串类型参数!"); var arrResult = new Array(); //保存中间结果的数组 for(var i=0,len=str.length;i<len;i++){ //获得unicode码 var ch = str.charAt(i); //检查该unicode码是否在处理范围之内,在则返回该码对映汉字的拼音首字母,不在则调用其它函数处理 arrResult.push(checkCh(ch)); } //处理arrResult,返回所有可能的拼音首字母串数组 return mkRslt(arrResult); } function checkCh(ch){ var uni = ch.charCodeAt(0); //如果不在汉字处理范围之内,返回原字符,也可以调用自己的处理函数 if(uni > 40869 || uni < 19968) return ch; //dealWithOthers(ch); //检查是否是多音字,是按多音字处理,不是就直接在strChineseFirstPY字符串中找对应的首字母 return (oMultiDiff[uni]?oMultiDiff[uni]:(strChineseFirstPY.charAt(uni-19968))); } function mkRslt(arr){ var arrRslt = [""]; for(var i=0,len=arr.length;i<len;i++){ var str = arr[i]; var strlen = str.length; if(strlen == 1){ for(var k=0;k<arrRslt.length;k++){ arrRslt[k] += str; } }else{ var tmpArr = arrRslt.slice(0); arrRslt = []; for(k=0;k<strlen;k++){ //复制一个相同的arrRslt var tmp = tmpArr.slice(0); //把当前字符str[k]添加到每个元素末尾 for(var j=0;j<tmp.length;j++){ tmp[j] += str.charAt(k); } //把复制并修改后的数组连接到arrRslt上 arrRslt = arrRslt.concat(tmp); } } } return arrRslt; }
第二步:修改addClasses函数
function addClasses() { var str, firstChar, firstWord, spl, $this, hasPrefixes = (opts.prefixes.length > 0); $($list).children().each(function() { $this = $(this), firstChar = '', str = $.trim($this.text()); if (str != '') { str = makePy(str); str = str[0].toLowerCase(); if (hasPrefixes) { spl = str.split(' '); if ((spl.length > 1) && ($.inArray(spl[0], opts.prefixes) > -1)) { firstChar = spl[1].charAt(0); addLetterClass(firstChar, $this, true); } } firstChar = str.charAt(0); addLetterClass(firstChar, $this); } }); }
我已经在网络上提供了我的欢迎文件.xml但是在运行应用程序时,它显示 404 错误 这是一个Spring应用程序。 网络.xml 我正在使用eclipse luna,java 8,tomcat 8和maven框架。index.html 文件直接位于 webapp 文件夹下,web.xml 位于 webapp/WEB-INF 文件夹下。如果我使用索引.jsp而不是索引.html,它就可以工作。然后欢
我想在Android项目中使用logback-android。这是我所做的 null 谢谢你!
我们在前面已经讲过如何处理静态文件,这小节我们详细的介绍如何在beego里面设置和使用静态文件。通过再介绍一个twitter开源的html、css框架bootstrap,无需大量的设计工作就能够让你快速地建立一个漂亮的站点。 beego静态文件实现和设置 Go的net/http包中提供了静态文件的服务,ServeFile和FileServer等函数。beego的静态文件处理就是基于这一层处理的,具
我正在实现如下所示的一个Spring集成工作流程。 现在,完成上述流程后,我需要将移动到一个归档目录。决定目标目录的决定基于消息标头,此标头添加到流程中的步骤中。为了移动这些文件,我创建了另一个流,如下代码所示 选择器方法 但是,正如该流所期望的那样,文件移动不会完成,因为所述头没有出现在流执行中。 那么,如何在报表文件创建后执行来实现这一目标呢?
本文向大家介绍VC下实现fopen支持中文的方法,包括了VC下实现fopen支持中文的方法的使用技巧和注意事项,需要的朋友参考一下 VC的fopen函数第一个参数是const char*,一旦遇到中文文件名就难以应付了,如果中文是UTF8编码的话,我们还可以用下列代码将其转换为UNICODE,然后用_wfopen函数打开文件。 代码如下: 这个函数的用法如下: 上述函数仍有不够完善之处,如参数st
问题内容: 我编写Python脚本来复制文件;不幸的是,由于文件名太长(> 256),它一直失败。反正有解决这个问题的办法吗? 我正在使用Python 2.5.4和Windows XP。 干杯, 问题答案: 使用以字符串开头的路径。
安装 protoc-gen-doc 简单遵循安装要求即可: https://github.com/estan/protoc-gen-doc 安装完成之后的protoc是2.5.0版本,无法处理proto3的文件。因此我们需要升级替换protoc为v3.0.0版本。 升级protoc 使用预编译版本 下载 请先在 protobuf 的 发布页面 中找到对应版本的 download ,然后下载对应版本
我是StackOverflow的新手,请尽可能清楚。 我有一个接受多文件输入的控制器, FE控制器它工作得很好,但如果我调用我的应用程序的RestController,它就不起作用。RestController 这是我在@Request estBody Request@Request estBody上的请求。 我尝试了不同的消费,如消费=“多部分/ *”,但它们不起作用。 您能给我一些建议,说明我