这件可能很简单的事情今天让我大吃一惊:(
我有一张三列n行的表。我想获取前两个单元格的内容,将它们相加,并将结果放在第三列:1+2=3
3+4=7等
$(document).ready(function() {
$("table tr").each(function() {
var col1 = parseInt($("td:first-child").text(), 10);
var col2 = parseInt($("td:nth-child(2)").text(), 10);
var sum = col1 + col2;
$("td:nth-child(3)").append("<span>" + sum + "</span>");
return false;
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>4</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td></td>
</tr>
</table>
从上面的样品中,我在最后的所有细胞中得到3825个。我做错了什么??
您没有将单元格选择器的范围界定为它们所在的行。此外,不要返回循环内部。
$(document).ready(function() {
$("table tr").each(function() {
var col1 = parseInt($(this).find("td:first-child").text(), 10);
var col2 = parseInt($(this).find("td:nth-child(2)").text(), 10);
var sum = col1 + col2;
$(this).find("td:nth-child(3)").append("<span>" + sum + "</span>");
});
});
td {
background: #ddd;
padding: 3px;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td>1</td>
<td>2</td>
<td></td>
</tr>
<tr>
<td>3</td>
<td>4</td>
<td></td>
</tr>
<tr>
<td>5</td>
<td>6</td>
<td></td>
</tr>
<tr>
<td>7</td>
<td>8</td>
<td></td>
</tr>
</table>