在jquery中,我找到了几种方法来恢复表中的所有值(tr>td
),逐行对行进行求和,并使用sum=0
隐藏行。
此外,我需要逐行(td
)汇总所有td>tr
值,如果sum=0
,则隐藏列。
获得它的最短途径是什么?
更新 这是我目前的代码:
<table id='mytable' >
<tr><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
<tr><td>1</td><td>0</td><td>1</td><td>0</td><td>0</td><td>0</td><td>0</td><td>1</td><td>0</td></tr>
<tr><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td><td>0</td></tr>
</table>
<input type='button' onclick='updateTotal()' value='row sum'>
<script>
function updateTotal() {
var table = document.getElementById('mytable');
for (var r = 0, n=table.rows.length ; r < n; r++) {
mysum=0;
for (var x = 0, y = table.rows[r].cells.length; x < y; x++) {
mysum=mysum+parseFloat(table.rows[r].cells[x].innerHTML);
}
if(mysum==0) alert((r+1)+" row hide it!");
}
for (var r = 0, n=table.rows[0].cells.length ; r < n; r++) {
mysum=0;
for (var x = 0, y = table.rows.length; x < y; x++) {
mysum=mysum+parseFloat(table.rows[x].cells[r].innerHTML);
}
if(mysum==0) alert((r+1)+" col hide it!");
}
}
</script>
答案 0 :(得分:2)
我们假设您有以下HTML表格:
<table>
<tr>
<td>1</td><td>3</td><td>1</td>
</tr>
<tr>
<td>1</td><td>3</td><td>1</td>
</tr>
<tr>
<td>1</td><td>3</td><td>1</td>
</tr>
<tr>
<td>1</td><td>3</td><td>1</td>
</tr>
</table>
您可以通过我猜测与您处理行的方式非常相似的方式对列进行处理,这里是一些示例JavaScript(I&#34) ; m使用jQuery):
$(function(){
var list = $("table tr td:nth-child(2)");
var sum = 0;
for(var l = 0; l<list.length; l++)
sum += parseInt($(list[l]).text());
if(sum == 12)
{
list.css('background-color', 'green');
//list.hide();
}
else
list.css('background-color', 'red');
});
JS小提琴:http://jsfiddle.net/dxDD8/
<强>更新强>
为了解决您的jQuery如何帮助您减少代码的问题:
table.rows[r].cells[x].innerHTML
为例。如果你想使用jQuery,你可以说$(&#34; #tableName tr td:nth-child(3)&#34;)。您需要使用r
和x
变量构建字符串对象!