[英]I am facing an issue while looping through a dynamic table
我有一张包含以下元素的表格。 杰克史密斯是一个示例行。 我有多行这样的。
col1 col2 col3 col4 col5 col6 col7 col8
jack smith 23 Y Y error error_code error_desc
我正在动态形成这个表,如下所示。 我的问题是关于 col6、7 和 8。会有一些行没有 col6 作为错误。 只有当 col6 有错误时,我才希望 col7 和 col8 由 error_code 和 error_desc 填充。 我怎样才能做到这一点? 我不确定从哪里开始? 基本上,如果 col6 没有“错误”值,我不想遍历 col7 和 col8。
var table = $("<table/>");
$.each(data, function(rowIndex, r) {
var row = $("<tr/>");
$.each(r, function(colIndex, c) {
var cellMarkup = "<t"+(rowIndex == 0 ? "h" : "d")+"/>";
var cell = $(cellMarkup);
cell.text(c);
if(colIndex == 5){ --> I am doing this to flag an error in red. Nothing related to the posed question.
if( $.trim(c.toLowerCase() ) === "error" ){
cell.addClass("error blink");
}
}
row.append(cell);
});
table.append(row);
});
return container.html(table);
}
填充单元格时,append 单元格值在以下条件下:
colIndex
0-5),或者我们可以使用这个 select :
if( rowIndex == 0 || colIndex < 6 || (colIndex == 6 || colIndex == 7) && r[5].toLowerCase().trim() === "error") {
row.append(cell);
}
这是一个正在运行的演示(我稍微更改了您的代码的某些部分):
data = [ ['col1', 'col2', 'col3', 'col4', 'col5', 'col6', 'col7', 'col8'], ['jack', 'smith', '23', 'Y', 'Y', 'error', 'error_code', 'error_desc'], ['jack2', 'smith2', '232', 'Y2', 'Y2', 'no_error', 'error_code2', 'error_desc2'] ]; function makeTable(container) { var table = $("<table/>"); $.each(data, function(rowIndex, r) { var row = $("<tr/>"); $.each(r, function(colIndex, c) { var cellMarkup = "<t" + (rowIndex == 0? "h": "d") + "/>"; var cell = $(cellMarkup); cell.text(c); if (colIndex == 5) { if (c.toLowerCase().trim() === "error") { cell.addClass("error blink"); } } if (rowIndex == 0 || colIndex < 6 || (colIndex == 6 || colIndex == 7) && r[5].toLowerCase().trim() === "error") { row.append(cell); } }); table.append(row); }); return container.html(table); } makeTable($('.container'))
.error { color: red; }.blink { /* oh god no;-) */ }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <div class="container"></div>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.