jquery实现json数据源,动态数字分页

 json数据源,如下:

 

function _LessonJsonData(){
	
     var str = [
	
	       {
	       "id":"1",//id
		   "name":"sl",
		   "imgName":"/images/xx.jpg",
		   "link":"/xx/xx.aspx?id=1",
		   "type":"sl",
		   "lessonCountText":"xxx",//课时
		   "desc":"xxx",//介绍
		   "content"://内容
		        [
				    {
						"title":"第一讲 slxxx",
						"value":"<ul><li>一.xxx</li><li>二.xxx</li></ul>"
					},
					{
						"title":"第二讲 xxx",
						"value":"<ul><li>一.xxx</li><li>xxxx</li></ul>"
					},
					{
						"title":"第三讲 xxx",
						"value":"<ul><li>一.xx</li><li>二.xx</li><li>三.xx</li><li>四.xx</li><li>五.xx</li><li>六.xx</li></ul>"
					},
										{
						"title":"第四讲:xxx",
						"value":"<ul><li>一、xx/50/xx</li><li>二、xx</li><li>三、xx</li><li>四、xx</li></ul>"
					},
										{
						"title":"第五讲:slxx",
						"value":"<ul><li>一、slxx</li><li>二、slxx</li><li>三、slxx</li></ul>"
					}
			    ]
		   },
	       {
	       "id":"2",//id
		   "name":"xmz",
		   "imgName":"/images/xx.jpg",
		   "link":"/xx/xx.aspx?id=2",
		   "type":"xmz",
		   "lessonCountText":"xx",//课时
		   "desc":"xxxxxxxxxxxxxxxxx",//介绍
		   "content"://内容
		        [
				    {
						"title":"第一讲  xxxxx",
						"value":"<ul><li>xxxxx</li></ul>"
					},
					{
						"title":"第二讲:xxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第三讲:xxxxx",
						"value":"<ul><li>xxxxxx</li></ul>"
					},
					{
						"title":"第四讲:xxxxxxxxxx",
						"value":"<ul><li>xxxxxxx</li></ul>"
					},
					{
						"title":"第五讲:xxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第六讲:xxxxxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第七讲:xxxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第八讲:xxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第九讲:xxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第十讲:xxxxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第十一讲:xxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第十二讲:xxxxxxxx",
						"value":"<ul><li></li></ul>"
					},
					{
						"title":"第十三讲:xxxxxxxxxxxx",
						"value":"<ul><li></li></ul>"
					}
					
			    ]
		   }
	]
}


 

javascript代码实现,如下

<script type="text/javascript">
        //根据课程类型 查询 该类型下的所有课程,返回一个二维数组
        function getInforByType(lessonType) {
            var _LessonJsonData2 = new Array();
            var dz = 0;
            if (lessonType == "全部") {
                for (var ii1 = 0; ii1 < _LessonJsonData().length; ii1++) {
                    _LessonJsonData2[ii1] = _LessonJsonData()[ii1];
                }
            } else {
                for (var ii2 = 0; ii2 < _LessonJsonData().length; ii2++) {
                    if (lessonType == _LessonJsonData()[ii2].type) {
                        _LessonJsonData2[dz] = _LessonJsonData()[ii2];
                        dz++;
                    }
                }
            }
            return _LessonJsonData2;
        }
        //返回一个二维数组
        function ProcessArray(lessonData, pageSize) {
            //计算出总页数
            var _j;
            if ((lessonData.length % pageSize != 0 && lessonData.length >= 16) || lessonData.length == 16) {
                _j = lessonData.length / pageSize;
            } else {
                _j = lessonData.length / pageSize + 1;
            }
            //整理成[ 
            //        [["name":"nyb"],["name":"lj"],["name":"yy"],...],
            //        [["name":"zx"],["name":"wg"],["name":"jl"],...],
            //        ... 
            //      ]
            //便于分页
            var parray = new Array();
            var lsdata = new Array();
            lsdata = lessonData;
            for (var cp = 0; cp < parseInt(_j); cp++) {
                var stime = new Array();
                stime = lsdata.slice(0, pageSize);
                parray[cp] = stime;
                lsdata = lsdata.slice(pageSize, lsdata.length);
            }
            //
            return parray;
        }
        //rtnjson:所有数据,pageSize:一页显示多少个,currentPage:当前页码
        function ChangePager(rtnjson, pageSize, currentPage) {
            //
            var allData = ProcessArray(rtnjson, pageSize);
            //
            return allData[currentPage - 1];
        }
        //生成课程页面代码
        function Cdata(lessonjson, psize, pcount) {
            //
            var _rtnjson = new Array();
            _rtnjson = ChangePager(lessonjson, psize, pcount);
            //
            var strTotal = "";
            var strTop = "<div class='kcss4'>";
            var strMiddle;
            var strClear = "<div class='clear'></div>";
            var strBottom = "</div>";
            //
            for (var i2 = 0; i2 < _rtnjson.length; i2++) {
                //
                var _txtmsg = _rtnjson[i2];
                //
                var lessonName = _txtmsg.name;
                var lessonImg = _txtmsg.imgName;
                var lessonLink = _txtmsg.link;
                strMiddle = "<div class='kcss4-1'>"
                          + "<div class='kcss41-1'><img src='" + lessonImg + "' width='158' height='111' /></div>"
                          + "<div class='kcss41-2'><a href='" + lessonLink + "'>" + lessonName + "</a></div>"
                          + "</div>";
                strTotal += strMiddle;
                if ((i2 + 1) % 4 == 0 && (i2 + 1) >= 4) {
                    strTotal += strClear;
                    strTotal += strBottom;
                    strTotal += strTop;
                }
            }
            return strTotal;
        }
    </script>
    <script type="text/javascript">
        $(document).ready(function () {
            var a1 = new Array();
            a1 = getInforByType("全部");
            //
            $(".kcss341-context").html("").html(Cdata(a1, 16, 1));
            _createCode(a1, 16); //生成翻页html并指定事件
            //
            //点击 类型按钮 时,...
            $("label").click(function () {
                var lba1 = new Array();
                lba1 = getInforByType($(this).text());
                $(".kcss341-context").html("").html(Cdata(lba1, 16, 1));
                $(this).attr("class", "seleted").siblings("label").removeAttr("class");
                _createCode(lba1, 16); //生成翻页html并指定事件
            });
        });
    </script>
    <script type="text/javascript">
        //得到当前数据有多少页
        function GetPagecount(rtnjson, pageSize) {
            return ProcessArray(rtnjson, pageSize).length;
        }
        //生成翻页的HTML代码
        function _createCode(mtotal, psize) {
            $(".kcss351-context-bottom a").die("click");
            //
            $(".kcss351-context-bottom").html(""); //.append("<a href='#' class='prePage'>上一页</a> ");
            var str = "";
            for (var i = 0; i < GetPagecount(mtotal, psize); i++) {
                if (i + 1 == 1) {
                    str += "<a href='#' class='currentPage'>" + (i + 1) + "</a> ";
                } else if (i + 1 == GetPagecount(mtotal, psize)) {
                    str += "<a href='#'>" + (i + 1) + "</a> ";
                } else {
                    str += "<a href='#'>" + (i + 1) + "</a> ";
                }
            }
            $(".kcss351-context-bottom").append(str); // + "<a href='#' class='nextPage'>下一页</a>    ");
            //
            $(".kcss351-context-bottom a").live("click", function () {
                currentPage = $(this).text();
                $(".kcss341-context").html("").html(Cdata(mtotal, 16, currentPage));
                $(this).attr("class", "currentPage");
                $(this).siblings("a").removeAttr("class");
            });
        }
    </script>



 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值