我有一个具有以下结构的表,其中填充了从控制器获取的 json 数据。
<div class="table-responsive table-condensed table-sm table-bordered tabla">
<table class="table table-hover content-tabla" id="Datos" cellpadding="0" cellspacing="0">
<thead>
<tr class="table-success">
<td>Código</td>
<td>Nombre</td>
<td>Pronosticado</td>
<td></td>
<td>Pronosticado Acumulado</td>
<td>Entregado</td>
<td>Diferencia</td>
<td></td>
<td>Pronosticado Actual</td>
<td>Entregado</td>
<td>Diferencia</td>
<td>Activar</td>
</tr>
</thead>
<tbody>
<tr></tr>
</tbody>
</table>
</div>
现在我需要的是使用 jquery 将背景应用于名为 Difference 的列,但要根据获得的值。
这只是我想要实现的一个例子:
if(micolumna=='100%')
{
background-color=black;
color:red;
}
所以我填满了我的桌子
<script src="~/js/Jquery/jquery-3.1.0.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
datos();
});
function datos() {
$.getJSON("/MyController/Index", function (data) {
$.each(data, function (idx, opt) {
$('#Datos').append('<tr><td>' + opt.Codigo + '</td><td>' + opt.Nombre + '</td><td>' + opt.Pronostico + '</td><td>' + '' + '</td><td>' + opt.PronosticoAA + '</td><td>' + opt.Entregado + '</td><td>' + opt.DiferenciaAA + '</td><td>' + '' + '</td><td>' + opt.PronosticoSA + '</td><td>' + opt.EntregadoSA + '</td><td>' + opt.DiferenciaSA + '</td><td><input type="checkbox" name="cod_A" id="cod_A" value="A" /></td></tr>');
});
}, 'json');
}
</script>
您可以在创建列之前询问“Difference”的值,然后将其连接到 HTML,如下所示:
运气!
您可以做的是在创建每一行时,检查差异变量的值并应用一个类(如果它符合您的条件)。就像是:
我提出了几种完成任务的方法。
如果您不想更改生成表格的方式,可以在之后进行以下调用以更改样式:
另一种方法是通过 fields
data-*
,将数据添加到属性(例如data-pronostico
)而不是其内容:现在我们可以使用纯 CSS 配置样式,而无需 javascript: