mui和html5中使用js实现通讯录、索引页面、搜索功能等的具体操作方法通用于小程序--实测

40 篇文章 2 订阅

网路上几乎没有一个完整可用的方法,都是零零散散的,哎,自己码代码吧……

一、先获取json数据(api返回数据或者sqllite本地数据库查询得出)

            var datau = [{"username":"我","id":1},{"username":"不","id":5},{"username":"懂","id":2},{"username":"爱","id":11},{"username":"啊","id":6},{"username":"按","id":9}];
			var pys = pySegSort(datau);
			userdatas(datau,pys);

二、建立转换大小写、名称首字母排序的方法并分组

	//排序分组
		function pySegSort(arr) {
		    if(!String.prototype.localeCompare){
				return null;
			}		     
		    // var letters = "*abcdefghjklmnopqrstwxyz".split('');
			var letters = "*ABCDEFGHJKLMNOPQRSTWXYZ".split('');
		    var zh = "阿八嚓哒妸发旮哈讥咔垃痳拏噢妑七呥扨它穵夕丫帀".split('');
		     
		    var segs = [];
		    var curr;
		    letters.forEach(function(item,i){
		        curr = {letter: item, data:[],datas:[]};
		        arr.forEach(function(item2){
		            if((!zh[i-1] || zh[i-1].localeCompare(item2.username) <= 0) && item2.username.localeCompare(zh[i]) == -1) {
		                curr.data.push(item2.username);
						curr.datas.push(item2);
		            }
		        });
		        if(curr.data.length) {
		            segs.push(curr);
		            curr.data.sort(function(a,b){
		                return a.localeCompare(b);
		            });
		        }
		    });
		    return segs;
		}

三、使用多维循环实现页面渲染

function userdatas(data,pys){
			var table = document.body.querySelector('.mui-table-view');
			var htmla=""; //一个字母创建一个 ,即可
			var b=0;
			 for (var i = 0; i < pys.length; i++) {			   
				htmla += '<li data-group='+pys[i].letter+' class="mui-table-view-divider mui-indexed-list-group">'+pys[i].letter+'</li>'; 
				pys[i].datas.forEach( function(item){
					var s=pinyin.getCamelChars(data[i].username)+"";//此方法为 将返回的姓名 转为 大写首字母缩写 ,百度即可 如 李二 转为LR
					var shouzimu=s.substr(0, 1); //此方法获取 首字母 。
					htmla += '<li data-value='+s+ 'data-tags='+s+' class="mui-table-view-cell mui-indexed-list-item">'+item.username+'</li>';
				            // console.log(item.id + '---' +  item.username)
				        })	
				}
						
			table.innerHTML = htmla;//要按照 字母顺序添加 对应字母的 字符串即可
			
		}

四、页面需要首字转换的js文件,在资源里,直接去下载放进mui项目中就可以直接运行了。

五、希望可以帮助到后来人,以免入坑和浪费宝贵的青春……

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值