2017-01-08 4 views
0

Ich versuche, den Inhalt eines innerHTML auf einer Webseite zu kopieren und eine Zahl zu berechnen, dann fügen Sie das zu innerHTML hinzu, aber sie enthalten ein $, das die Berechnung.Ignoriere bestimmte Zeichen in einem innerHTML, also kann ich parseInt verwenden

var x = document.getElementsByClassName("item"); 
    var i; 
    var counter; 

    for (i = 0; i < x.length; i++) { 
     counter += parseInt(x[i].innerHTML, 10); 
     var j = Math.floor(counter/2.15); 
     x[i].innerHTML += (" " + j +"K"); 
    } 


<div class="item">$25.00</div> 

Ein Beispiel für die innerHTML- wären will $ 25.00 und ich diesen Wert nehmen und es um 2,15 zu teilen und nach dem 25.00 $ setzen. EX: $ 25,00 11K

Dieser Code gibt NaNK zurück, weil das Dollarzeichen ($), was kann ich tun, damit es ignoriert oder entfernt wird, damit die Berechnung funktionieren kann? Außerdem verwende ich parseInt nicht richtig.

Antwort

1

Sie müssen zuerst eine Zeichenfolge abrufen, die nur einen numerischen Wert enthält, um das Zeichen $ mithilfe einer Regex zu entfernen.

var x = document.getElementsByClassName("item"); 
 
    var i; 
 
    var counter = 0; 
 

 
    for (i = 0; i < x.length; i++) { 
 
     
 
     var valueString = x[i].innerHTML.replace(/[$]/g,""); 
 
     counter += parseInt(valueString, 10); 
 
     var j = Math.floor(counter/2.15); 
 
     x[i].innerHTML += (" " + j +"K"); 
 
    }
<div class="item">$25.00</div>

PS: Vergessen Sie nicht, Zähler einen Anfangswert 0 zu geben, wenn Sie + =

0

verwenden möchten Dadurch werden alle nicht-nummerische Zeichen entfernen mit JQuery:

var str=$(".item").text(); 
 
str = parseInt(str.replace(/[^0-9\.]/g, '')); 
 
$("#result").text("results is :"+str);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="item">$25.00K</div> 
 
<div id="result"></div>

ohne JQuery:

var x = document.getElementsByClassName("item"); 
var i; 
var counter; 
var str= x.textContent || x.innerText; 
var onlyInt = parseInt(str.replace(/[^0-9\.]/g, '')); 
Verwandte Themen