我在计算输入到一堆单独文本框(其中 25 个)中的 X 数量时遇到问题。我的文本框的结构如下:
<td>
<input class="jq-hitOrMiss" onchange="SumHits();" pattern="[xXoO]" type="text" maxlength="1" size="1" />
</td>
以及我用来尝试对它们进行计数的 jquery:
function SumHits() {
var sum = 0;
var inputs = $('.jq-hitOrMiss');
$.each( inputs , function( index, value ){
var value = $(value).val;
if(value == 'X' || value == 'x'){
sum++
}
});
alert(sum + " " + inputs.length);
var totalInput = $('.jq-total');
totalInput.text = sum;
}
我弹出的警报的值为 0 和 25。许多这些框中都有 X,所以我知道 0 是不正确的,而 25 似乎是正确的,因为有 25 个文本框。感谢所有帮助
最佳答案
.val
需要是 .val()
才能调用该方法。否则,您将尝试访问 jQuery 对象上的 val
属性。
var value = $(value).val();
// ^^
<小时/>
进行计数的另一种方法是使用 filter()
var sum = $('.jq-hitOrMiss').filter(function(){
return this.value.toUpperCase() == 'X';
}).length;
关于javascript计算其中包含 "X"的文本框的数量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36457218/