我的迷你计算器无法正常工作请阅读说明

问题描述

我正在尝试用JavaScript制作计算器,但无法正常工作。当我尝试执行操作时,说1 +1会给我11,这对于所有数字都是一样的,这是我的代码

var slider1 = document.getElementById("myRange1");
var slider2 = document.getElementById("myRange2");
var output = document.getElementById("output");
var fullEquat = document.getElementById("equation");
var add1 = slider1.value;
var add2 = slider2.value;

output.innerHTML = slider1.value; // display the default slider value

// Update the current slider value (each time you drag the slider handle)
slider1.oninput = function() {
  output.innerHTML = this.value;
}
slider2.oninput = function() {
    add1 = slider1.value;
    add2 = slider2.value;
    equals = add1 + add2;
  fullEquat.innerHTML = slider1.value + "+" + slider2.value + "=" + equals;
}
slider1.oninput = function() {
    add1 = slider1.value;
    add2 = slider2.value;
    equals = add1 + add2;
  fullEquat.innerHTML = slider1.value + "+" + slider2.value + "=" + equals;
}
.slider {
    width: 400px;
    display: inline;
}
.equal {
    text-align: center;
    font-size: 100pt;
    margin: 0 0 0 0;
}
<div class="slidecontainer">
  <input type="range" min="0" max="1000" value="500" class="slider" id="myRange1">
    +
  <input type="range" min="0" max="1000" value="500" class="slider" id="myRange2">
</div>
<p class="equal">=</p>
<p id="output" class="output"></p>
<p id="equation" class="equat"> + = </p>

解决方法

当您声明model_gbm <- train(mod,data = df,method = "gbm",distribution="bernoulli",metric = "ROC",bag.fraction=0.75,trControl = fitCtrl_2) model_gbm Stochastic Gradient Boosting 100 samples 15 predictor 2 classes: 'a','b' No pre-processing Resampling: Cross-Validated (10 fold) Summary of sample sizes: 90,91,90,89,... Resampling results across tuning parameters: interaction.depth n.trees ROC Sens Spec 1 50 0.6338333 0.7233333 0.500 1 100 0.6093333 0.6533333 0.510 1 150 0.6193333 0.6500000 0.555 2 50 0.6445000 0.6900000 0.545 2 100 0.6138333 0.6166667 0.620 2 150 0.6085000 0.6700000 0.555 3 50 0.5770000 0.6466667 0.555 3 100 0.5756667 0.6066667 0.530 3 150 0.5808333 0.6300000 0.530 时,您得到的是字符串而不是数字...您应该将它们放在这样的Number()中

add1 = slider1.value; add2 = slider2.value;
,

Value属性返回一个字符串,您可以使用简单的技巧将其乘以1,如add1 =滑块。值* 1.它会给你一个数字

,

.value属性返回字符串
您必须使用.valueAsNumber来获取数字

示例代码:

const calcForm = document.forms['form-calculation'],pOutput   = document.getElementById('p-output')
  ;
calcForm.oninput=_=>
  {
  calcForm['range-1'].nextElementSibling.textContent = calcForm['range-1'].value
  calcForm['range-2'].nextElementSibling.textContent = calcForm['range-2'].value

  pOutput.textContent = calcForm['range-1'].valueAsNumber 
                      + calcForm['range-2'].valueAsNumber
  }
form { width: 20em; }
input[type="range"] {width: 80%;  }
label { font-size:2em; font-weight: bold;  text-align: center; display: block; width: 80%;}
<form name="form-calculation">
  <input type="range" min="0" max="1000" value="500"   name="range-1"><span>500</span> 
  <label>+</label>
  <input type="range" min="0" max="1000" value="500" name="range-2"><span>500</span>
  <label>=</label>
</form>
  <p id="p-output" class="output">1000</p>