请参阅最后的编辑以获取我的最终答案。我将剩下的留在里面,以展示提出一个好问题的重要性,并展示尝试过的内容、输入的样子以及预期的输出应该是什么。那会节省很多时间。
使用 jQuery,您可以遍历每个表格单元格,检查值并更改其输出内容。我更喜欢这个而不是更改实际数据。最好保持您的数据完好无损,只更改它在此处的显示方式。
$("#test td").each(function() {
if ($(this).html() == "0") {
$(this).html("");
}
});
您可以在这里看到它的实际效果。
更新:
如果只<td>
需要更改一些 s,我建议为这些使用一个类。
$(".noZeroAllowed").each(function() {
if ($(this).html() == "0") {
$(this).html("");
}
});
它适用于这样的 HTML:
<table id="test">
<tr>
<td class="noZeroAllowed">10</td>
<td class="noZeroAllowed">5</td>
<td>0</td>
<td>1</td>
</tr>
<tr>
<td class="noZeroAllowed">11</td>
<td class="noZeroAllowed">0</td>
<td>9</td>
<td>7</td>
</tr>
</table>
另请参阅更新的小提琴。
更新 2:
如果数据不是原子数据并且单元格中有多个值,如下所示:
<table id="test">
<tr>
<td class="noZeroAllowed">10 0 foobar 0</td>
<td class="noZeroAllowed">5</td>
<td>0, 0, 0</td>
<td>1</td>
</tr>
</table>
然后,您需要更改 Javascript 以使用正则表达式。\b
表示单词边界。但它不适用于小数0.5
。
$(".noZeroAllowed").each(function() {
var newStr = $(this).html().replace(/\b0\b/g, "");
$(this).html(newStr);
});
请参阅更新的小提琴。
更新 3:
这会将<b>
相关类<td>
s 中标签内的所有零转换为空字符串,但保持最后一个零不变。
$(".noZeroAllowed").each(function() {
var zeros = new Array;
var b = $(this).find("b");
for (var i = 0; i < b.length; i++) {
$(b[i])
if ($(b[i]).html() == "0") {
zeros.push(b[i]);
}
}
for (var i = 0; i < zeros.length - 1; i++) {
$(zeros[i]).html("");
}
});
在这里看到它。