Игнорировать определенные символы в innerHTML, чтобы я мог использовать parseInt

Я пытаюсь скопировать содержимое 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 долларов США 11 000

Этот код возвращает NaNK, потому что знак доллара ($), что я могу сделать, чтобы его игнорировать или удалить, чтобы вычисления могли работать? Кроме того, возможно, я неправильно использую parseInt.


person noox    schedule 08.01.2017    source источник


Ответы (3)


Сначала вам нужно получить строку, содержащую только числовое значение, для удаления символа $ с помощью регулярного выражения.

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>

P.S. Не забудьте присвоить счетчику начальное значение 0, если хотите использовать +=

person Deep    schedule 08.01.2017

Вы можете соединить первый и последний символ, если вы не уверены, что вы получите символы первым и последним, а затем проверьте, являются ли эти цифры строкой. Для соединения используйте этот вопрос Как удалить первый и последний символ строки

person Santhosh S Kashyap    schedule 08.01.2017

Это удалит все нецифровые символы с помощью 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, ''));
person Yamen Nassif    schedule 08.01.2017