Javascript:parseInt在涉及数学运算符时的问题

Javascript:parseInt在涉及数学运算符时的问题,javascript,html-parsing,Javascript,Html Parsing,我有一个滑块,它在“slide”上从数组中获取定价值(带欧元符号的字符串),然后对html输出进行解析(parseInt)。这很好,在输出上我得到了数字加上符号,但是当我需要乘以这些值时(将月定价切换为anual),我失去了输出,没有数字或符号。所以我猜parseInt在没有数学运算符的情况下工作正常。。。?我已经仔细研究过类似的问题,但我找不到任何解决方案,这让我更加困惑……有人能告诉我遗漏了什么吗?守则: var priceStarter = [ '149€',

我有一个滑块,它在“slide”上从数组中获取定价值(带欧元符号的字符串),然后对html输出进行解析(parseInt)。这很好,在输出上我得到了数字加上符号,但是当我需要乘以这些值时(将月定价切换为anual),我失去了输出,没有数字或符号。所以我猜parseInt在没有数学运算符的情况下工作正常。。。?我已经仔细研究过类似的问题,但我找不到任何解决方案,这让我更加困惑……有人能告诉我遗漏了什么吗?守则:

    var priceStarter = [
      '149€',
      '199€',
      '249€',
      '399€',
      '599€',
      '999€',
     'Contact Us',
    ];


    slider.on('slide', function (values, handle) {
      if(jQuery(this).hasClass('active-anual')){
        //ANUAL
           var anualStarter = priceStarter[parseInt(handle)];
           priceValueStarter.html(anualStarter * 10); //ISSUE HERE

      }
      else {
        //MONTHLY
        priceValueStarter.html(priceStarter[parseInt(handle)]); //WORKS

      }
    });

    //TOGGLE ANUAL/MONTHLY
    anual.on('click',function(){
      jQuery(this).toggleClass('active-tab');
     monthly.removeClass('active-tab');
      slider.addClass('active-anual');
    })
    monthly.on('click', function () {
      jQuery(this).toggleClass('active-tab');
     anual.removeClass('active-tab');
      slider.removeClass('active-anual');
    })
  }
编辑:

console.log(anualStarter)
为我提供了正确的值,但此
console.log(anualStarter*10)
为我提供了NaN

编辑:根据康斯坦丁纳的回答,我得到了号码,但在使用操作员时,我仍然丢失了欧元符号和联系我们

 slider.on('slide', function (values, handle) {
  if (jQuery(this).hasClass('active-anual')) {
    //ANUAL
    var anualStarter = priceStarter[parseInt(handle)];
    priceValueStarter.html(parseInt(anualStarter )*10);


  } else {
    //MONTHLY
    priceValueStarter.html(priceStarter[parseInt(handle)]);    
  }   
})

)

您的
priceStarter[parseInt(handle)]
是一个类似
“249欧元”
的字符串。所以你不能使用
anualStarter*10
“249€”*10
)-它是
NaN
。尝试改用
parseInt(anualStarter)*10

一点解释。当您尝试使用
“249€”*10
时,JavaScript引擎会尝试将字符串“249€”转换为数字,而不会将其解释为整数或其他内容。因此,您的
“249欧元”*10
编号(“249欧元”)*10
相同,
编号(“249欧元”)是
NaN

我想您计划编写如下代码:

slider.on('slide', function (values, handle) {
    if(jQuery(this).hasClass('active-anual')){
      //ANUAL
         var anualStarter = priceStarter[parseInt(handle)];
         priceValueStarter.html(isNaN(parseInt(anualStarter)) ? anualStarter : parseInt(anualStarter) * 10 + "€"); //ISSUE HERE

    }
    else {
      //MONTHLY
      priceValueStarter.html(priceStarter[parseInt(handle)]); //WORKS

    }
  });

解析时是否检查了
handle
的值?你确定
pricestarter
索引
parseInt(handle)
中有一个元素吗?这个
console.log(anualStarter)
给了我正确的值,但是这个
console.log(anualStarter*10)
给了我NaNit只在我从数组中删除欧元符号,并且滑块到达“联系我们”时才起作用数组位置,不显示任何内容。但是如果没有操作,效果很好…我已经用我修改过的代码更新了我的答案。我已经成功地完成了这项工作,解决方案非常相似,逻辑相同,但您的代码更优雅,所以谢谢:)