博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
javascript通过json数据按格式生成一个按字母分类排序的分类信息表
阅读量:6982 次
发布时间:2019-06-27

本文共 2988 字,大约阅读时间需要 9 分钟。

效果图如下

  1.json数据格式

var _people=[{name:'朱瑞',url:'aaaaaa',nick:'zhu'},{name:'刘桂清',url:'aaaaa',nick:'liu'}]; 这里按姓氏排序借用了nick,不用nick的话,需要加载一个汉字拼音对照数组,判断匹配 2.javascript代码
1 (function ($){  2     function SortByGroup(arr,option){  3         this.option=option;  4         this.arr=arr||[];  5     }  6     SortByGroup.prototype={  7         init:function(){  8             this.sort();  9             return this.sortByGroup(this.group()); 10         }, 11         sort:function(){ 12             var tag=this.option.tag; 13             this.arr=this.arr.sort( function compareFunction(param1,param2){ 14                  return param1[tag].localeCompare(param2[tag]); 15              }); 16         }, 17         group:function(){ 18             var arr=[],count=0,def; 19             var charTemp="-1",temp; 20             for(var i in this.arr){ 21                 temp=this.arr[i]; 22                 if(charTemp!==temp[this.option.tag].charAt(0)){ 23                     var one=[]; 24                     one.push(temp); 25                     arr[count]=one; 26                     charTemp=temp[this.option.tag].charAt(0); 27                     count++; 28                 }else{ 29                     arr[count-1].push(temp); 30                 } 31             } 32             return arr; 33         }, 34         sortByGroup:function(arr){ 35             var temp; 36             for(var i =0;i

'+temp+'

    ' 93 } 94 str+=this.renderOne(arr[i]); 95 } 96 if(str) str+="
"; 97 return str; 98 }, 99 renderOne:function(one){100 return '
  • '+one.name+'
  • ';101 },102 renderIndex:function(){103 var str="";104 105 for(var i =0;i
    "+this.index[i]+"";107 }108 str+="
    MORE";109 return str;110 }111 };112 new RenderPage(new SortByGroup(_people,{tag:'nick'}).init()).init();113 })(jQuery);

    3.html页面结构

    按字母搜索

      

    4.css样式

    #pd32 .title4{	border-bottom:1px solid #cecece;	padding-bottom:10px;}#pd32 .title4 p{	float:right;}#pd32 .title4 p a{	background:none;	padding:0px;	float:none;	color:#d26213;	font-family:"Microsoft Yahei","����";	font-size:22px;	cursor:pointer;	margin-left:12px;}#pd32 .block{	margin-top:15px;}#pd32 .block h3{	border-bottom:1px dotted #cfcfcf;	font-size:30px;	font-family:"Arial","Microsoft Yahei","����";	color:#000;	height:40px;	line-height:40px;	padding-bottom:5px;	margin-bottom:8px;}#pd32 .block ul{	zoom:1;}#pd32 .block li{	float:left;	display:inline;	width:102px;	height:30px;	line-height:30px;	overflow:hidden;	font-size:16px;	font-family:"Microsoft Yahei","����";}#pd32 .block li a{	color:#000;}

      

    注:另外需要引入jquery,这里的json数据是在开始就引入的。后面的js代码直接引用了people这个变量(比较low)。

    转载于:https://www.cnblogs.com/licifer/p/4603056.html

    你可能感兴趣的文章
    Rust编程语言的核心部件
    查看>>
    CSS(颜色_字体)
    查看>>
    BZOJ 1061: [Noi2008]志愿者招募【单纯形裸题】
    查看>>
    JVM上的随机数与熵池策略
    查看>>
    Java8并发教程:Threads和Executors
    查看>>
    v8世界探险(3) - v8的抽象语法树结构
    查看>>
    《C语言及程序设计》实践项目——用if语句实现分支结构
    查看>>
    “AI +跨界+技术” 看2018中国会展创新者大会的新观点
    查看>>
    JavaScript——数据类型转换(显式和隐式)
    查看>>
    【半月刊 4】前端高频面试题及答案汇总
    查看>>
    lc686. Repeated String Match
    查看>>
    RHEL 7.1操作系统安装过程说明
    查看>>
    基于Python的性能自动化测试框架设计思路和实现
    查看>>
    Spark里几个重要的概念及架构
    查看>>
    dubbo-rpc基本功能
    查看>>
    7月国内电脑分辨率TOP10 :1366*768跌破13%
    查看>>
    CefSharp获取网页源码时卡住长时间没有返回结果
    查看>>
    刚入门Python的小伙伴,这是腾讯大牛工作中总结的爬虫经验!
    查看>>
    智能微型机器人可随周围环境“变身”
    查看>>
    Linux操作系统 MBR扇区故障了怎么办
    查看>>