修复了ajax填充的html表中的标题
Fix the headers in html table populated by ajax
我正在用ajax调用填充一个html表,方式如下-
$.ajax({
type: "POST",
url: "my_url",
data: JSON.stringify(result),
async: true,
dataType: "json",
contentType: "application/json; charset= Shift-JIS",
success: function (response) {
glResp = response;
populateTable(glResp);
},
error: function (error) {
console.log(error);
//alert("Error!!");
}
});
用于填充表的函数如下- JS -
function populateTable(finalObject) {
var obj = finalObject;
var headers1 = ['Name', 'City', 'Job', 'Salary'];
var table = $("<table id='my-table' />");
var columns = headers1;
columns.unshift('');
var columnCount = columns.length;
var row = $(table[0].insertRow(-1));
for (var i = 0; i < columnCount; i++) {
if (i == 0) {
var headerCell = $("<th><input type='button' id='sort'></th>");
row.append(headerCell);
}
else {
var headerCell = $("<th/>");
headerCell.html([columns[i]]);
row.append(headerCell);
}
}
$.each(obj, function (i, obj) {
$row = '<tr><td><input type="checkbox"></td><td>' + obj.Name + '</td><td>' + obj.City + '</td><td>' + obj.Job + '</td><td>' + obj.Salary + '</td></tr>';
table.append(row);
});
var dvTable = $("#dvCSV");
dvTable.html("");
dvTable.append(table);
}
现在我想要表标题固定在顶部时,数据正在滚动。有什么想法,这可以实现吗?
你可以使用一个插件来固定标题列的位置,http://mkoryak.github.io/floatThead/
希望这个链接对你有帮助。
对于固定标题,您可以为标题元素添加thead
(th
),为chlid tr
元素添加tbody,为两者添加display:block
,为tbody元素添加overflow:auto
。
var tab = '[{"Name":"check","City":"check","job":"check","Salary":"check"},{"Name":"check","City":"check","job":"check","Salary":"check"},{"Name":"check","City":"check","job":"check","Salary":"check"},{"Name":"check","City":"check","job":"check","Salary":"check"},{"Name":"check","City":"check","job":"check","Salary":"check"},{"Name":"check","City":"check","job":"check","Salary":"check"}]'
tab = JSON.parse(tab);
populateTable(tab);
function populateTable(finalObject) {
var obj = finalObject;
var headers1 = ['Name', 'City', 'Job', 'Salary'];
var table = $("<table id='my-table' />");
var columns = headers1;
columns.unshift('');
var columnCount = columns.length;
var th = ""
for (var i = 0; i < columnCount; i++) {
if (i == 0) {
var headerCell = "<th><input type='button' id='sort'></th>";
th = th + headerCell;
}
else {
var headerCell = "<th>"+[columns[i]]+"</th>";
// headerCell.html();
th = th + headerCell;
}
}
table.prepend("<thead>"+th+"</thead>")
$.each(obj, function (i, obj) {
row = '<tr><td><input type="checkbox"></td><td>' + obj.Name + '</td><td>' + obj.City + '</td><td>' + obj.job + '</td><td>' + obj.Salary + '</td></tr>';
table.append(row);
});
var dvTable = $("#dvCSV");
dvTable.html("");
dvTable.append(table);
}
table{
width:100%;
}
td, th {
min-width: 100px;
}
tbody{
overflow: auto;
display: block;
height: 100px;
}
thead{
display:block;
text-align:left;
background:green;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="dvCSV"><div>
相关文章:
- 如何强制即时显示更改后的html标题
- 如何使用JavaScript在HTML标题中正确插入unicode
- 我该如何为video.js制作一个插件,在HTML标题中添加和删除三角形
- HTML “标题”属性显示单词“未定义” - 例如.“主页未定义”
- “index.swf”嵌入在“index.html”中,在一个页面中显示同一网站两次.HTML 标题标签/属性也显示值“
- 使用铁路由器时设置 HTML 标题
- 在几秒钟后更改 HTML 标题
- 动态更新 url/html 标题时,如何获得类似 facebook 的按钮来注册更改?(不是 fb:like 中的 hr
- 可以在 HTML 标题标签中设置点击功能
- Javascript onclick 函数在 HTML 标题上不起作用
- 如何使用 javascript 数组填充 html 标题
- 将 HTML 标题转换为 JavaScript 变量
- 在点击函数中将 HTML 标题属性的值作为变量进行访问
- 从HTML标题和段落创建下拉菜单
- 如何根据其文件名自动更改HTML标题
- 如何使HTML标题属性停留更长时间
- 冻结宽度为100%的html标题
- 如何添加HTML标题属性到对象(flash)
- 浏览器在表标记中出现HTML标题标记问题
- 您可以在动态设置后使浏览器显示HTML标题属性吗?