如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
How to print array elements in table horizontally and after some element vertically using Jquery?
我有一个带数字的数组。如果我按行打印表中的数组,它会水平打印所有元素,但我想水平打印像3个元素一样的数组,然后在下一行水平打印3个元素,我的Jquery是:
$.get("",{id:$(this).val()}, function(data){
for (var i = 0; i < data.length; i++) {
drawRow(data[i]);
}
function drawRow(rowData) {
var row = $("<th />")
row.empty();
$("#delDish").append(row);
row.append($("<button class='btn btn-lg btn-success' value='"+ rowData.item_id +"'>" + rowData.item_name + "</button>"));
} });
我需要的是aaray应该像一样打印
<table>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
<tr>
<td></td>
<td></td>
<td></td>
</tr>
</table>
如何使用Jquery?
查看此JSBin:http://jsbin.com/wayotejatu/edit?html,js,输出
首先,用一些伪数据填充data
数组:
var data = [
{ item_id: 1, item_name: 'a' },
{ item_id: 2, item_name: 'b' },
{ item_id: 3, item_name: 'c' },
{ item_id: 4, item_name: 'd' },
{ item_id: 5, item_name: 'e' },
{ item_id: 6, item_name: 'f' },
{ item_id: 7, item_name: 'g' }
];
然后,在数据中循环,只有当行索引是三的乘积时,才创建新行:
if (i % 3 === 0) {
row = $('<tr />');
$("#delDish tbody").append(row);
}
然后,在drawRow
函数中,总是附加到最后一行$("#delDish tbody tr:last-child")
请注意,HTML结构与问题中的原始结构有点不同:
<table id="delDish">
<tbody></tbody>
</table>
相关文章:
- electronic BrowserWindow的最小高度和宽度在hide()show()方法之后不起作用
- 使用javascript将动态表从一个html页面打印到另一个html页
- 在chrome.tabs.onCreated之后加载HTML页面
- JavaScript打印功能使日历停止工作
- 在Jquery detachment()和appendTo()之后定位元素
- AngularJS:ng之后,重复$scope值未按预期更新
- esri javascript异步打印
- 文本框不是从Javascript/Asp.net中的对话框中打印出来的
- 为什么元素的宽度在页面加载之后和那一刻之后不同
- jQuery/JavaScript在线公文包表单-打印样式表
- 没有在Angular应用程序中定义firebase(在firebase迁移之后)
- 如何打印嵌套对象的所有值
- 在终端中运行 JavaScript 时(使用 rhino),如何使用 print() 函数在一行中打印
- Javascript复选框函数:;缺少:在属性id之后"
- 如何使用Jquery水平打印表中的数组元素,并在某个元素之后垂直打印
- 打印regex之后的最后一个字符
- CSS不适用于(在第一页之后)尝试使用javascript打印html页面
- window.print() 之后的 Javascript 有时在打印对话框之前执行,有时在打印对话框之后执行
- 在第一页之后打印重复的页眉
- window.open之后,可以't在Safari for Mac中打印