忽略 innerHTML 中的某些字符,以便我可以使用 parseInt
Ignore certain characters in an innerHTML so I can use 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">.00</div>
innerHTML 的一个示例是 $25.00,我想将该值除以 2.15 并将其放在 $25.00 之后。例如:25.00 美元 11K
此代码 returns NaNK 因为美元符号 ($),我该怎么做才能忽略或删除它,以便计算可以进行?另外,我可能没有正确使用 parseInt。
您需要首先获取仅包含数值的字符串,以便使用正则表达式删除字符 $。
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">.00</div>
P.S :如果你想使用 +=
不要忘记给计数器一个初始值 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">.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, ''));
如果你不确定你是否会得到第一个和最后一个字符,你可以拼接第一个和最后一个字符,然后检查这些数字是否是字符串
对于拼接使用这个问题
How to remove the first and the last character of a string
我正在尝试复制网页上 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">.00</div>
innerHTML 的一个示例是 $25.00,我想将该值除以 2.15 并将其放在 $25.00 之后。例如:25.00 美元 11K
此代码 returns NaNK 因为美元符号 ($),我该怎么做才能忽略或删除它,以便计算可以进行?另外,我可能没有正确使用 parseInt。
您需要首先获取仅包含数值的字符串,以便使用正则表达式删除字符 $。
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">.00</div>
P.S :如果你想使用 +=
不要忘记给计数器一个初始值 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">.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, ''));
如果你不确定你是否会得到第一个和最后一个字符,你可以拼接第一个和最后一个字符,然后检查这些数字是否是字符串 对于拼接使用这个问题 How to remove the first and the last character of a string