html动态生成表格源码,使用AJAX动态生成table表格数据

本文介绍如何使用jQuery AJAX动态生成表格数据,结合jQuery.pagination.js和pagination.css实现分页功能。通过示例代码详细讲解了从JSON数据到表格的构建过程,以及分页栏的设置和回调函数的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

《使用AJAX动态生成table表格数据》

【1】使用jquery-Ajax动态生成表格数据

【2】使用jQuery.pagination.js和pagination.css生成分页栏

效果:

json数据为假数据,由一个data.json和data1.json 等组成。写多个json主要体现,点击分页栏,数据变化。

217332_0.png

第一步:下载并导入js和css 文件。

需要三个文件:

jquery-1.8.3.min.js

jquery.pagination.js

pagination.css

jquery.pagination.js和pagination.css下载路径:

https://download.csdn.net/detail/u011955400/7935363

导入:

第二步:创建table表格和分页栏

cellspacing="0" class="table01" id="table01">

栏目名称上级栏目名称栏目描述删除修改

第三步:构造虚拟的json数据

217332_1.jpegvcXFfMjg4MTc3Mzk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" style="font-size: 12px;" width="948" />

使用jquery.pagination.js插件,分页时可以只需要 当前页码,和总记录数,就可以实现分页。

{"datas":

[{"child":[],"content":"体育新闻体育新闻体育新闻","id":1,"name":"体育新闻","parent":null},

{"child":[],"content":"娱乐新闻娱乐新闻娱乐新闻","id":2,"name":"娱乐新闻","parent":null},

{"child":[],"content":"时政新闻时政新闻时政新闻","id":3,"name":"时政新闻","parent":null}],

"pageNumber":1,

"pageSize":3,

"pageStartIndex":0,

"totalPages":8,

"totalRows":22}

分页数据: "datas":[...] 包含的

第四步:编写动态生成表格jquery代码

var totalRows; // 总记录数

var pageNumber;// 当前页码

$(function(){

Ajax(0,1,0); // 在页面加载的时候,自动发送ajax 请求,生成数据

//三个参数的含义: index1 :在分页的时候用到,看url 路径,主要想提交不用的路径,显示不用的数据

// pageNumber 根据不同的页码,显示不用的分页数据

// newsLabelId : 可以理解为是查询的条件,根据条件在后台筛选分页数据

function Ajax(index1,pageNumber,newsLabelId){

// 修改为ajax 来提交请求

var url ="${pageContext.request.contextPath}/html/json/data"+index1+".json";

$.get(url,

{"pageNumber":pageNumber,

"newsLabelId":newsLabelId}

// 重点代码:----------------------------------------------------

function(data){

//1,将class=dynamicCreate1清空,清空之前生成的tr,因为不清空会导致再生成新的tr时,原来的tr依然存在

$(".dynamicCreate1").remove();

//在数据生成完成后,隐藏了页面上空行的tr,需要显示出来才能使用。

$("#dynamicCreate").show();

// 拿到页面上的tr 对象

var tr = $("#dynamicCreate");

// 拿到需要遍历的数据

var newslabledatas = data.datas;

//遍历集合 index 是索引,item 是当前的对象

$.each(newslabledatas, function(index, item){

//克隆tr,每次遍历都可以产生新的tr,为了创建新的tr

var clonedTr = tr.clone();

//拿到新的tr,循环遍历它每一个td元素,并赋值 inner_index 是当前td 的索引

clonedTr.children("td").each(function(inner_index){

//根据索引为每一个td赋值

switch(inner_index){

case(0): // 判断是第一个 td ,就为其赋值

// item.name 就是当前的 newslabledatas.name

$(this).html(item.name);

break;

case(1):

// 由于parent 元素可能为空,需要判断

if (item.parent == null) {

$(this).html("无上级目录");

}else{

$(this).html(item.parent.name);

}

break;

case(2):

$(this).html(item.content);

break;

case(3):

$(this).html("删除");

break;

case(4):

$(this).html("修改");

break;

}//end switch

});//end children.each

//把克隆好的tr追加原来的tr后面 ,这样才能看见新的tr

clonedTr.insertAfter(tr);

// 将所有新生成的clonedTr ,既克隆出来的 tr 给予 class 属性,详情见$(".dynamicCreate1").remove();的注释

clonedTr.attr("class","dynamicCreate1");

});//end $each

//隐藏id=clone的tr,因为该tr中的td没有数据,不隐藏起来会在生成的table第一行显示一个空行

$("#dynamicCreate").hide();

// 显示整个 table 表格

$("#table01").show();

// 下面的两条数据,主要是为 分页做准备的

totalRows = data.totalRows; // 总记录数

pageNumber= data.pageNumber; // 当前页的页码

},"json");

}

});

第五步:分页栏的处理

对于该插件的使用,可以借鉴网上很多的例子:

https://www.cnblogs.com/jingping/p/3925976.html 等

var pageIndex = pageNumber-1 ; //页面索引初始值

var pageSize = 3; //每页显示条数初始化,修改显示条数,修改这里即可

//分页,PageCount是总条目数,这是必选参数,其它参数都是可选

$("#Pagination").pagination(100, {

callback: PageCallback,

prev_text: '上一页', //上一页按钮里text

next_text: '下一页', //下一页按钮里text

items_per_page: pageSize, //显示条数

num_display_entries: 5, //连续分页主体部分分页条目数

current_page: pageIndex, //当前页索引

num_edge_entries: 2 //两侧首尾分页条目数

});

//翻页调用 index 是当前页的索引

function PageCallback(index, jq) {

Ajax(index,index+1,1);

}

Demo的源码:https://download.csdn.NET/detail/qq_28817739/9873681

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值