Maison  >  Questions et réponses  >  le corps du texte

Convertissez innerhtml en nombres et effectuez des calculs

Je fais un simple calculateur de matériaux mais quand je additionne les valeurs j'obtiens 27002700 au lieu de 5400 J'ai donc essayé de le pousser vers un tableau et d'utiliser .map et Number, Je l'ai réécrit environ 10 fois. Je suis à court d'idées.

const heightValue = document.querySelector(".height-value")
const tottalDiv = document.querySelector(".tottal-div")

let heightArr = []
function rangeSlide2(value){
  heightValue.innerHTML = value;
}
heightArr.push(heightValue.innerHTML)
function tottal() {
 let tonum = heightArr.map(Number)
  tottalDiv.innerHTML = tonum + tonum;
}
<input type="range" name="range" id="height-range" min="2000" max="3500" step="100" value="2700" onchange="rangeSlide2(this.value)" onmousemove="rangeSlide2(this.value)">
        <span class="height-value">2700</span>
        
        <div class="button-div">
      <button type="button" class="submit" onclick="tottal()">tottal</button>
    </div>

    <div class="tottal-div">0</div>

P粉425119739P粉425119739276 Il y a quelques jours351

répondre à tous(1)je répondrai

  • P粉637866931

    P粉6378669312024-01-17 10:39:08

    map 的结果将是一个数组,当您尝试将两个数组与一个值相加时,它将转换为 string,因此 [2700 ] + [2700]'2700' + '2700' = '27002700' Idem.

    Donc, je pense que ce dont vous avez besoin, c'est de la méthode reduce pour additionner toutes les valeurs.

    const heightValue = document.querySelector(".height-value")
    const tottalDiv = document.querySelector(".tottal-div")
    
    let heightArr = []
    function rangeSlide2(value){
      heightValue.innerHTML = value;
    }
    heightArr.push(+heightValue.innerHTML)
    function tottal() {
      let tonum = heightArr.reduce((acc, item) => acc + item)
      tottalDiv.innerHTML = tonum + tonum;
    }
    <input type="range" name="range" id="height-range" min="2000" max="3500" step="100" value="2700" onchange="rangeSlide2(this.value)" onmousemove="rangeSlide2(this.value)">
            <span class="height-value">2700</span>
            
            <div class="button-div">
          <button type="button" class="submit" onclick="tottal()">tottal</button>
        </div>
    
        <div class="tottal-div">0</div>

    répondre
    0
  • Annulerrépondre