2017-01-08 2 views
0

WebページのinnerHTMLの内容をコピーして数値を計算し、innerHTMLに追加しようとしていますが、$が含まれています計算。innerHTMLの特定の文字を無視してparseIntを使用することができます

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> 

innerHTMLプロパティの例は、$ 25.00となり、私はその値を取り、2.15で割りと$ 25.00の後にそれを載せていきたいと思います。 EX:$ 25.00 11K

このコードはドル記号($)を使用しているためNaNKを返します。無視するか削除して計算を実行できるのですか?また、私はparseIntを使用していないかもしれません。

答えて

1

正規表現を使用して文字$を削除するには、最初に数値のみを含む文字列を取得する必要があります。

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:あなたが使用したい場合はカウンタ初期値0を与えることを忘れてはいけない+ =

0

これは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>
jQueryのなし

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

uはuが最初の文字を取得し、これらの数字は、スプライスの使用のためにこの質問 How to remove the first and the last character of a string文字列 あるかどうかを確認し、次に続くかどうかわからない場合はあなたが最初と最後の文字をスプライスすることができます

関連する問題