我有一个问题很简单,我想,但我无法弄清楚如何解决它!
这是我的js代码:
$('#attendees_nb_div').change(function() {
if ($('#attendees_nb').val() < 1){
$('#attendees_nb').val(1);
}
$('.reservation_time_cell_div').each(function() {
var array = this.id.split(':');
if (array[4] < $('#attendees_nb').val()) {
$(this).css('background-color', 'red');
console.log('Value of array[4]: ', array[4]);
console.log('Value of $(\'#attendees_nb\').val(): ', $('#attendees_nb').val());
console.log('Test result array[4] < $(\'#attendees_nb\').val(): ', array[4] < $('#attendees_nb').val());
}
});
});
以下是控制台的输出:
Value of array[4]: 15
Value of $('#attendees_nb').val(): 2
Test result array[4] < $('#attendees_nb').val(): true
为什么15&lt; 2对吗? 我也注意到我的结果是: 350&lt; 4,35&lt; 4,50&lt; 6,60&lt; 7 ... 所以我猜它只针对数组[4]的第一个数字进行测试,但为什么呢? 如何测试所有数字?
答案 0 :(得分:3)
您需要将array[4]
和$('#attendees_nb').val()
转换为如下所示的整数
if (parseInt(array[4]) < parseInt($('#attendees_nb').val())) {
这会对你有帮助。
答案 1 :(得分:1)
在您检查的值周围添加parseInt()
。
答案 2 :(得分:1)
你正在做的是比较一个字符串和一个整数。val()
的结果总是一个字符串。要将它与一个整数进行比较,你必须把它变成一个整数
使用parseInt()
将字符串作为参数并将其作为整数返回。所以你在这里:
$('#attendees_nb_div').change(function() {
//Store it to speed up things a little bit
var valueToCheck = parseInt(($('#attendees_nb').val());
if ($valueToCheck < 1){
$('#attendees_nb').val(1);
}
$('.reservation_time_cell_div').each(function() {
var array = this.id.split(':');
if (array[4] < valueToCheck) {
$(this).css('background-color', 'red');
console.log('Value of array[4]: ', array[4]);
console.log('Value of $(\'#attendees_nb\').val(): ', valueToCheck);
console.log('Test result array[4] < $(\'#attendees_nb\').val(): ', array[4] < valueToCheck);
}
});
});
来自MDN:
parseInt()函数解析字符串参数并返回指定基数的整数(数学系统中的基数)。
有关parseInt
的更多详情