我有一个小脚本(使用nouislider)
我希望在输出价格时使用$ sign添加rangeThing值。
我的代码是:
$("#slider").noUiSlider({
range: [0, 1000000]
,start: [350000, 700000]
,handles: 2
,step: 50000
,slide: function(){
var values = $(this).val();
$("span.rangeThing").text(
values[0] +
" - " +
values[1]
);
}
,serialization: {
to: [$("#exTO"),$("#exFR")]
,resolution: 1
}
});
javascript会创建一个类似<span class="rangeThing"></span>
输出格式类似于200000 - 350000
我想用(逗号)格式化为千位分隔符,但那会变得混乱。因此,我试图用$符号前置两组值来表示价格。
因此产生的结果就像$ 200000 - $ 350000
我尝试将值更改为类似的东西,但这不起作用。
$("span.rangeThing").text(
+ "$" + values[0] +
" - " +
+ "$" + values[1]
);
我不确定我是否在正确的轨道上,并且我试图回应$的事实可能是罪魁祸首,也许我应该使用unicode,无论哪种方式都无法正常工作。
帮助表示赞赏
答案 0 :(得分:4)
问题是Javascript中的一元加号有效地将操作数转换为数字。这意味着
+ "$"
实际上评估为NaN
。
只需将+
运算符放在术语之间,事情应该按照您的预期进行。
答案 1 :(得分:3)
在一行中查看发生了什么:
+
+
一行更容易阅读:
$("span.rangeThing").text("$" + values[0] + " - $" + values[1]);
答案 2 :(得分:1)
此外,如果你想要的话,你可以在这里添加逗号......
function addCommas(nStr)
{
nStr += '';
x = nStr.split('.');
x1 = x[0];
x2 = x.length > 1 ? '.' + x[1] : '';
var rgx = /(\d+)(\d{3})/;
while (rgx.test(x1)) {
x1 = x1.replace(rgx, '$1' + ',' + '$2');
}
return x1 + x2;
}
要使用它,只需将该功能添加到您的文件中,并像这样使用它......
$("span.rangeThing").text("$" + addCommas(values[0]) + " - " + "$" + addCommas(values[1]));
答案 3 :(得分:1)
嗯,在您的示例中,您提供的示例中似乎有一个额外的+
运算符。正如您在示例中看到的那样:
$("span.rangeThing").text(
values[0] +
" - " +
values[1]
);
这将产生字符串"1 - 2"
,假设值= [1,2]。您可以通过执行以下操作来简单地添加$
$("span.rangeThing").text(
"$" + values[0] +
" - " +
"$" + values[1]
);
正如您可能已经意识到的那样,您发布的示例存在一些语法错误 - 您到处都有+
!有一点需要注意 - 如果您尝试将字符串组合在同一行中作为数字运算,则需要额外的括号。所以,如果你有:
var string = "foo"+2+3+"bar";
您的string
将是:
foo23bar
如果你有:
var string = "foo"+(2+3)+"bar";
您的string
将是:
foo5bar