我正在尝试解析html文档中的价格而我遇到了一些问题:
上面有很多div,因此我不能像往常一样使用parseInt()。以下是类元素的外观:
<div>
<span id="market_buynow_dialog_totals_total" class="market_dialog_totals_cost">0,11€</span>
<span class="market_dialog_totals_label">Total:</span>
</div>
此外还有一个,
,我不想被限制在,
的左侧或右侧,在上面的例子中,我很想得到int 11,对于399,99我很想获得39999。
任何人都可以帮助我并告诉我如何实现这一目标吗?我不能自己做这件事,我现在试了很长时间。 TY!
答案 0 :(得分:1)
您可能希望使用parseFloat
,将逗号替换为句点,并将该数字视为单个十进制值。
下面的代码段使用了这种方法(第一个结果),并且还使用parseInt
分别解析逗号之前和之后的数字组(第二和第三个结果),并且如上所述(第四个)结果)。
var src = document.getElementById("market_buynow_dialog_totals_total");
var segments = src.innerText.split(",");
document.getElementById("result1").innerText = parseFloat(src.innerText.replace(/,/, "."));
document.getElementById("result2").innerText = parseInt(segments[0]);
document.getElementById("result3").innerText = parseInt(segments[1]);
document.getElementById("result4").innerText = parseInt(src.innerText.replace(/,/, ""));
&#13;
<div>
<span id="market_buynow_dialog_totals_total" class="market_dialog_totals_cost">399,99€</span>
<span class="market_dialog_totals_label">Total:</span>
</div>
Parsed result as a decimal: <span id="result1"></span><br/>
Parsed result as an integer, left side: <span id="result2"></span><br/>
Parsed result as an integer, right side: <span id="result3"></span><br/>
Parsed result as an integer, both sides: <span id="result4"></span><br/>
&#13;
答案 1 :(得分:0)
要从“market_buynow_dialog_totals_total”元素中检索整数,您可以使用以下代码。
function retrieveValue(id){
return parseFloat(document.getElementById(id).innerHTML.replace(/[,€]/g, ""));
}