我试图从字符串中获取值。
<div class="example">sth 44.05 $</div>
<div class="example">sth another 140.00 $</div>
<div class="example">sth sth 100.05 $</div>
<button onclick="myFunction()">test</button>
<p id="values">demo</p>
如果只是一个,那很简单:
<script>
function myFunction() {
var x = document.querySelector('.example').innerText;
let number=x.match(/\d+(\.\d+)?/)[0];
document.getElementById('values').innerHTML = +number;
}</script>
但我不确定如何获取所有这些值(然后计算它们)。试着做类似的事,但它不起作用:
<script>
function myFunction() {
var x = document.querySelectorAll('.example');
var i;
for (i = 0; i < x.length; i++) {
x[i].innerText;
}
var value = [];
for (i = 0; i < x.length; i++) {
value.push( x[i].innerText);
}
let number=value.match(/\d+(\.\d+)?/)[0];
document.getElementById('values').innerHTML = +number;
}
</script>
答案 0 :(得分:0)
let number=value.match(/\d+(\.\d+)?/)[0];
match
是您在字符串上找到的方法。
value
是一个数组,而不是一个字符串。
如果要在所有字符串中运行正则表达式,则需要将value
转换为字符串(例如,使用join
)。