我试图在每次更新列表时对它们的值求和。为此,我有了此功能,该功能在表每次插入或删除行时都会执行,但现在,它只是将值发送到控制台:
function update_price(){
$("#table-content tr td:nth-child(3)").each(function() {
console.log($(this).find("div").val());
});
}
与之关联的HTML代码如下:
<tbody id="table-content">
<tr class="table-content-line">
<td>9789898818386</td>
<td>Fale Menos, Comunique Mais</td>
<td>
<div class="form-group">
<input type="number" data-number-to-fixed="2" data-number-stepfactor="1" class="auto form-control price" value="12" step=".01">
</div>
</td>
<td>2</td>
<td>
<span class="remove-action">
<i class="fa fa-times-circle"></i>
</span>
</td>
</tr>
...
</tbody>
出于某种奇怪的原因,当我使用.html()
而不是.val()
时,它返回给我用户输入的HTML代码,但是当我使用.val()
时却没有发生
如果您有任何建议,请告诉我,也许我做错了什么,但我还没有检查。
谢谢,
米基桑塔纳
答案 0 :(得分:5)
您需要将$(this).find("div").text()
与$(this).find("div input").val();
交换
div实际上不包含任何文本,即使输入在其中也是如此。因此,您必须定位input
以获取值
演示
function update_price() {
$("#table-content tr td:nth-child(3)").each(function() {
console.log($(this).find("div input").val());
});
}
update_price();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tbody id="table-content">
<tr class="table-content-line">
<td>9789898818386</td>
<td>Fale Menos, Comunique Mais</td>
<td>
<div class="form-group"><input type="number" data-number-to-fixed="2" data-number-stepfactor="1" class="auto form-control price" value="12" step=".01"></div>
</td>
<td>2</td>
<td><span class="remove-action"><i class="fa fa-times-circle"></i></span></td>
</tr>
...
</tbody>
</table>
答案 1 :(得分:0)
Val()用于html表单元素。使用text()代替非表单元素。