对于当前关注的选择器,我可以使用哪个选择器遍历页面除了上的所有输入元素?
这是我目前拥有的:
total = 0.00;
$(".numbers").each(function() {
total += parseFloat($(this).val());
});
<input type="number" class="numbers" />
答案 0 :(得分:1)
我不喜欢在循环本身之外初始化变量,所以我个人建议.toArray().reduce()
。
$("input:first").focus(); //for demo only
var total = $(".numbers:not(:focus)").toArray().reduce((sum, element) => sum + Number(element.value),0);
console.log(total);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="text" class="numbers" value="5" />
<input type="text" class="numbers" value="2" />
<input type="text" class="numbers" value="12" />
答案 1 :(得分:0)
$(".numbers:not(':focus')").each(function(){
total += parseFloat($(this).val());
});
答案 2 :(得分:0)
$('.numbers:not(:focus)').each(function(){
})
答案 3 :(得分:0)
$(".numbers:not(':focus')").each(function(index,element){
total += parseFloat($(element).val());
});
答案 4 :(得分:0)
我更喜欢这样:
$.each($('.number').not(':focus'), function(idx, ele) {
total += parseFloat(ele.value);
});
答案 5 :(得分:0)
使用:not(:focus)
是您要查找的反选择。另外,您可以$('.numbers').not(':focus')
来过滤现有集合:
function calculate() {
let total = $(".numbers:not(:focus)").get().reduce((sum, el) =>
(sum += parseFloat(+el.value), sum), 0);
console.log('Sum:',total)
}
$('input').on('keydown', calculate)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<p>Change the number of the textbox:</p>
<input class="numbers" value="1" />
<input class="numbers" value="2" />
<input class="numbers" value="3" />
<input class="numbers" value="4" />