Javascript Break setInterval和变量未定义

Javascript Break setInterval和变量未定义,javascript,Javascript,我是Javascript新手,尝试过编写这个脚本。一旦点击,它就会抓住商品的价格,阻止价格下跌。一旦点击,它不会停止,也不会抓住显示的价格。请告知 价格应为:- 起价:100 最低最高价格:90 函数更新值(任务){ var amount=document.getElementById(“金额”).value+00; var maxant=document.getElementById(“maxant”).value+00; var amount=document.getElementById

我是Javascript新手,尝试过编写这个脚本。一旦点击,它就会抓住商品的价格,阻止价格下跌。一旦点击,它不会停止,也不会抓住显示的价格。请告知

价格应为:-

起价:100 最低最高价格:90

函数更新值(任务){
var amount=document.getElementById(“金额”).value+00;
var maxant=document.getElementById(“maxant”).value+00;
var amount=document.getElementById(“revese amt”).value;
var小数点=2;
var小数点系数=小数点位===0?1:Math.pow(10,小数点位);
风险值下限值=数学下限(金额)/十进制系数;
var floored\u number\u max=数学地板(最大金额)/十进制系数;
地板编号=地板编号。固定(小数点);
地板编号\u max=地板编号\u max.toFixed(小数位);
如果(任务==“停止”){
控制台日志(数量);
检查(刷新ID,“停止”,数量);
}否则{
var refreshid=setInterval(函数(){
地板编号=地板编号-1/100;
地板编号=地板编号。固定(小数点);
if(地板编号<地板编号\U最大值){
检查(刷新ID,“结束”);
}否则{
$('#revese amt').html(地板编号);
}
}, 100);
}
}
功能检查(刷新ID、状态、金额){
如果(状态=“结束”){
clearInterval(刷新ID);
$('#revese amt').html('Deal Gone!');
}否则如果(状态=“停止”){
控制台日志(amt);
clearInterval(刷新ID);
警报('祝贺您!您已抓取物品@price of RM'+amt);
}
}





马尔


您可以更改以下代码:

第一个html
p
标记,必须使用
textContent
方法获取其文本

// change
var amountgrabbed = document.getElementById("revese-amt").value;

// to
var amountgrabbed = document.getElementById("revese-amt").textContent;
改变

这与你的任务相匹配

 $('#revese-amt').html(floored_number);
然后在全局空间中声明var refreshid变量。让它无处不在

  $refreshid = setInterval(function() {
  floored_number = floored_number - 1 / 100;
  floored_number = floored_number.toFixed(decimal_places);
  if (floored_number < floored_number_max) {
    check(refreshid, "over");
  } else {
    $('#revese-amt').html(floored_number);
  }

}, 100);
$refreshid=setInterval(函数(){
地板编号=地板编号-1/100;
地板编号=地板编号。固定(小数点);
if(地板编号<地板编号\U最大值){
检查(刷新ID,“结束”);
}否则{
$('#revese amt').html(地板编号);
}
}, 100);

您只向一个有3个参数的函数传递了两个参数。@SpencerWieczorek我确实传递了3个参数,
if(task==“stop”){console.log(amountchapped);check(refreshid,“stop”,amountchapped);}
@MuthaFury也许在起始价格输入的onclick值中应该有一些内容?@MuthaFury但您没有在这里:
检查(refreshid,“over”)。很好!一个问题解决了,还有一个问题。如何停止SetInterval?或
document.getElementById(“revese amt”).innerText
@MuthaFury-declare
var-refreshid
outside
updateValue
函数。@Muthabury我正在处理它……但我需要更多的控制台……你能控制台一下吗。在
check
方法状态停止中记录
refreshid
吗?@Muthabury可能像lgor所说的那样,但我认为在if闭包中定义var是不好的,但仍然应该起作用。
 $('#revese-amt').html(floored_number);
  $refreshid = setInterval(function() {
  floored_number = floored_number - 1 / 100;
  floored_number = floored_number.toFixed(decimal_places);
  if (floored_number < floored_number_max) {
    check(refreshid, "over");
  } else {
    $('#revese-amt').html(floored_number);
  }

}, 100);