http://jsfiddle.net/xpvt214o/333878/
let maxValues = jQuery('#slider').map(function(){
return this.max;
}).get();
let maxbudget = maxValues.join();
jQuery(document).on('input', '#slider', function() {
// On récupère la valeur maximal de l'input range
let value = jQuery(this).val();
console.log(value);
// si on utilise la valeur maximale du budget alors on affiche en plus 'budget de xx€ et au-delà'
jQuery(this).val() === maxValues.join() ? jQuery('#slider_value').html( jQuery(this).val() + ' € et au-delà') : '';
jQuery(this).val() < maxValues.join() ? jQuery('#slider_value').text( jQuery(this).val() + ' €') : '';
// if ( jQuery(this).val() === maxValues.join()) {
// jQuery('#slider_value').html( jQuery(this).val() + ' € et au dela');
// }
// else{
// jQuery('#slider_value').html( jQuery(this).val() + ' €');
// }
});
3-10k不能与三元函数一起工作,但是如果/其他都不能正常工作,我的三元运算符有什么问题?
答案 0 :(得分:0)
您的编码方式,如果条件为false,则该语句将生成一个独立的空字符串(''
)。由于该字符串没有分配给任何东西,也没有传递给任何方法,因此它对任何东西都没有任何影响,就像您已编写此代码一样:
'';
(这是有效的代码,可能令人惊讶。)
我猜您想使用''
作为传递给html
和text
的值。如果是这样,则要将条件运算符¹放入参数中
jQuery('#slider_value').html( jQuery(this).val() === maxValues.join() ? jQuery(this).val() + ' € et au-delà' : '');
jQuery('#slider_value').text( jQuery(this).val() < maxValues.join() ? jQuery(this).val() + ' €' : '');
旁注:
最好一次执行jQuery(this).val()
并将结果存储在变量中,这主要是为了清楚起见,但这也是因为jQuery(this).val()
会执行多个函数调用并在幕后:
var value = jQuery(this).val();
jQuery('#slider_value').html( value === maxValues.join() ? value + ' € et au-delà' : '');
jQuery('#slider_value').text( value < maxValues.join() ? value + ' €' : '');
实际上,在现代浏览器中,即使使用jQuery(this).val()
元素,也可以将this.value
写入select
。
¹? :
运算符的正确名称是“条件运算符”。它是 a 三元运算符(一个接受三个操作数的运算符),并且它是JavaScript唯一的三元运算符,但是谁知道,也许有一天会添加另一个...
答案 1 :(得分:0)
3-10k不能与三元函数一起工作,但是如果/其他都不能正常工作,我的三元运算符有什么问题?
jQuery(this).val()
是字符串,因此<
进行字符串比较。滑块下方的文本在值为时不会更新。 3500,因为"3500"
按字母顺序(而不是数字!)紧跟"30000"
之后。
(该文本不会更新为"30000 € et au dela"
,因为该值不等于30000,所以另一行也不执行任何操作。)
答案 2 :(得分:0)
jQuery(this).val() === maxValues.join() ? jQuery('#slider_value').html( jQuery(this).val() + ' € et au-delà') : jQuery('#slider_value').html( jQuery(this).val() + ' €');;
工作