gpt4 book ai didi

javascript - 减少 jquery 选择器获得的结果

转载 作者:行者123 更新时间:2023-11-29 15:24:33 24 4
gpt4 key购买 nike

我使用的代码看起来像这样:

$(document).ready(function() {
var total = $('#exam-percent-weightage > td > input').not('[type=hidden]').not('[disabled=disabled]').get().reduce(function(a, b) {
return specialParseFloat(a === undefined ? 0 : a.value) + specialParseFloat(b === undefined ? 0 : b.value);
});
console.log(total);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<tr id="exam-percent-weightage">
<td class="weightagePadding"> <strong>First Term</strong>
</td>
<td>
<input name="data[Exam][0][percent_weightage]" class="form-control percentWeight" value="0.00" step="any" id="Exam0PercentWeightage" type="number">
<input name="data[Exam][0][id]" class="testId" value="30" id="Exam0Id" type="hidden">
</td>
<td>&nbsp;%</td>
<td class="buttonPadding">+</td>
<td class="weightagePadding"> <strong>Second Term</strong>
</td>
<td>
<input name="data[Exam][1][percent_weightage]" class="form-control percentWeight" value="0.00" step="any" id="Exam1PercentWeightage" type="number">
<input name="data[Exam][1][id]" class="testId" value="31" id="Exam1Id" type="hidden">
</td>
<td>&nbsp;%</td>
<td class="buttonPadding">+</td>
<td class="weightagePadding"> <strong>Third Term</strong>
</td>
<td>
<input name="data[Exam][2][percent_weightage]" class="form-control percentWeight" value="0.00" step="any" id="Exam2PercentWeightage" type="number">
<input name="data[Exam][2][id]" class="testId" value="32" id="Exam2Id" type="hidden">
</td>
<td>&nbsp;%</td>
<td>&nbsp;&nbsp;<strong>=</strong>
</td>
<td>
<input class="form-control" disabled="disabled" id="total-weight" type="number">
</td>
<td>&nbsp;%</td>
<td class="buttonPadding">
<button type="submit" class="action-mainbtn">Save</button>
</td>
</tr>

注意:我必须使用的 jQuery 版本实际上是 1.12.1(在 SO 片段工具中不可用)

仅供引用:我已经定义了 specialParseFloat,错误可能与此无关。 Anyway函数如下:

function specialParseFloat(something) {
return parseFloat(something) || 0;
}

我在浏览器 (FF) 中得到的行为是 reduce 仅返回最后一个值,而不是将所有值添加到输入框中。然而,这在只有两个输入的情况下可以正常工作。

我做错了什么?

最佳答案

根据文档here您必须将累加器设置为 reduce 的第三个参数,并使用它来添加您的值。因为您不使用累加器,所以您最后的评估将是最终结果。

关于javascript - 减少 jquery 选择器获得的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40652508/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com