如何获得确切的元素价格?

时间:2017-10-09 17:10:45

标签: javascript html

我无法从这个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 "";
    }
}

我不太确定我能做什么?任何帮助将不胜感激。

4 个答案:

答案 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,请尝试使用

&#13;
&#13;
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;
&#13;
&#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 "";
    }
}