我正在使用以下行来搜索表格的行,以检查是否有任何TD包含我的searchTerm到目前为止工作正常。
我唯一的问题是searchTerm连续出现多次(如下所示)。 在这种情况下,它将行中的值添加为文本,而不是计算它们的总和。
示例:
这里它当前返回82,0,5
,因为searchTerm在第一行中出现两次(一次是值8,一次是2)。
在这种情况下,它应该返回10,0,5
而不是这个。
有谁能告诉我如何更改我的代码才能实现这一目标?
我的JS:
var searchTerm = "item1"
var result = new Array();
$('#myTable tbody tr').each(function() {
result.push(+($(this).find('td:contains(' + searchTerm + ')').next('td').text()));
});
alert(result);
我的表:
<table id="myTable">
<thead>
<tr>
<th class="myHeader">Cat 1</th>
<th>Vol 1</th>
<th class="myHeader">Cat 2</th>
<th>Vol 2</th>
<th class="myHeader">Cat 3</th>
<th>Vol 3</th>
//...
</tr>
</thead>
<tbody>
<tr>
<td>item1</td><td>8</td><td>item2</td><td>7</td><td>item1</td><td>2</td>
</tr>
<tr>
<td>item3</td><td>5</td><td>item2</td><td>7</td><td>item2</td><td>4</td>
</tr>
<tr>
<td>item3</td><td>1</td><td>item1</td><td>5</td><td>item3</td><td>3</td>
</tr>
//...
</tbody>
</table>
提前非常感谢,蒂姆。
答案 0 :(得分:1)
尝试,
var xSum = 0;
$('#myTable tbody tr').each(function() {
xSum = 0;
$(this).find('td:contains(' + searchTerm + ')').each(function(){
xSum += parseInt($(this).next('td').text());
});
result.push(xSum);
});