0

我正在尝试在网页上复制innerHTML 的内容并计算一个数字,然后将其添加到innerHTML,但它们包含一个$,这会打乱计算。

 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 美元之后。例如:25.00 美元 11K

此代码返回 NaNK,因为美元符号 ($),我该怎么做才能使其被忽略或删除,以便计算可以工作?另外,我可能没有正确使用 parseInt。

4

3 回答 3

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

于 2017-01-08T03:54:43.183 回答
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, ''));
于 2017-01-08T03:55:43.090 回答
0

如果你不确定你是否会得到第一个和最后一个字符,你可以拼接第一个和最后一个字符,然后检查这些数字是否是字符串对于拼接使用这个问题 如何删除字符串的第一个和最后一个字符

于 2017-01-08T03:55:43.687 回答