【问题标题】:Ignore certain characters in an innerHTML so I can use parseInt忽略 innerHTML 中的某些字符,以便我可以使用 parseInt
【发布时间】:2017-01-08 03:47:46
【问题描述】:

我正在尝试在网页上复制 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。

【问题讨论】:

    标签: javascript innerhtml parseint calculation


    【解决方案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");
        }
    &lt;div class="item"&gt;$25.00&lt;/div&gt;

    P.S : 如果你想使用 +=,别忘了给 counter 一个初始值 0

    【讨论】:

      【解决方案2】:

      如果你不确定你是否会得到第一个字符和最后一个字符,你可以拼接第一个和最后一个字符,然后检查这些数字是否是字符串 对于拼接使用这个问题 How to remove the first and the last character of a string

      【讨论】:

        【解决方案3】:

        这将删除所有非数字字符 使用 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-04-19
          • 1970-01-01
          • 2018-12-26
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-12-22
          • 2018-12-06
          • 1970-01-01
          相关资源
          最近更新 更多