从querySelectorAll获取的字符串中获取值

时间:2017-12-08 13:45:58

标签: javascript string

我试图从字符串中获取值。

<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>

1 个答案:

答案 0 :(得分:0)

let number=value.match(/\d+(\.\d+)?/)[0];

match是您在字符串上找到的方法。

value是一个数组,而不是一个字符串。

如果要在所有字符串中运行正则表达式,则需要将value转换为字符串(例如,使用join)。