我无法从这个HTML代码中获得确切的价格:
<span id="price" data-selenium-price="1094.4">$1,094.40</span>
以下是我用来获取确切价格但产生的值1
而不是值1094.4
:
function() {
try {
return document.querySelector("#price").innerText.match(/^.{1}(.*).{0}/i)[1].trim();
}
catch(e) {
return "";
}
}
我不太确定我能做什么?任何帮助将不胜感激。
答案 0 :(得分:1)
如果data-selenium-price
和innerText值相同,则可以取出属性值。
function price() {
try {
console.log(document.querySelector("#price").getAttribute("data-selenium-price"));
} catch (e) {
return "";
}
}
<span id="price" data-selenium-price="1094.4">$1,094.40</span>
<button type="button" onclick="price()">Get Price</button>
答案 1 :(得分:1)
如果您确实不想使用属性data-selenium-price,请尝试使用
console.log(parseFloat(document.getElementById("price").innerText.slice(1).replace(/,/g, '')));
&#13;
<span id="price" data-selenium-price="1094.4">$1,094.40</span>
&#13;
查看控制台中的值
答案 2 :(得分:1)
试试这个,
var price = document.getElementById("price").innerText.replace(/[$]/,'').replace(/,/,'');
console.log(parseInt(price));
<span id="price" data-selenium-price="1094.4">$1,094.40</span>
答案 3 :(得分:0)
看起来使用这似乎解决了我的问题:
function() {
try {
return document.querySelector("#price").innerText.match(/^.{1}(.*).{0}/i)[1].replace(",", '').trim();
}
catch(e) {
return "";
}
}