jQuery是一个快速、简洁的JavaScript库,它简化了HTML文档遍历、事件处理、动画和Ajax交互等操作。将数据数组添加到表格行是Web开发中常见的需求,特别是在动态生成表格内容时。
// 假设有一个数据数组
var dataArray = [
{id: 1, name: '张三', age: 25},
{id: 2, name: '李四', age: 30},
{id: 3, name: '王五', age: 28}
];
// 获取表格的tbody元素
var $tbody = $('#myTable tbody');
// 清空现有内容(可选)
$tbody.empty();
// 遍历数组并添加行
$.each(dataArray, function(index, item) {
$tbody.append(
'<tr>' +
'<td>' + item.id + '</td>' +
'<td>' + item.name + '</td>' +
'<td>' + item.age + '</td>' +
'</tr>'
);
});
$.each(dataArray, function(index, item) {
$tbody.append(`
<tr>
<td>${item.id}</td>
<td>${item.name}</td>
<td>${item.age}</td>
</tr>
`);
});
$.each(dataArray, function(index, item) {
var $row = $('<tr>');
$row.append($('<td>').text(item.id));
$row.append($('<td>').text(item.name));
$row.append($('<td>').text(item.age));
$tbody.append($row);
});
原因:没有清空现有内容就添加新数据
解决:在添加前调用$tbody.empty()
原因:频繁操作DOM导致性能下降 解决:
// 创建文档片段
var fragment = document.createDocumentFragment();
$.each(dataArray, function(index, item) {
var $row = $('<tr>');
// ...添加单元格
fragment.appendChild($row[0]);
});
$tbody.append(fragment);
原因:数据中包含HTML特殊字符可能导致XSS攻击或显示问题
解决:使用.text()
方法而不是直接拼接HTML
$row.append($('<td>').text(item.name));
$.each(dataArray, function(index, item) {
var $row = $('<tr>').data('item-data', item);
// ...添加单元格
$row.click(function() {
console.log('选中行数据:', $(this).data('item-data'));
});
$tbody.append($row);
});
如果数据结构复杂,可以考虑使用模板引擎如Handlebars:
// 定义模板
var source = '<tr><td>{{id}}</td><td>{{name}}</td><td>{{age}}</td></tr>';
var template = Handlebars.compile(source);
// 使用模板
$.each(dataArray, function(index, item) {
$tbody.append(template(item));
});
通过以上方法,你可以灵活地将数据数组添加到表格行中,并根据实际需求选择最适合的实现方式。
没有搜到相关的文章