如何解决jQuery 循环和 parseInt
今天这个可能很简单的事情让我失望了:(
我有一个包含三列和 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>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。