Javascript 用JS-解析两个HTML字符串,并将其中一个转换为Int

Javascript 用JS-解析两个HTML字符串,并将其中一个转换为Int,javascript,parsing,Javascript,Parsing,我目前正在分析第一个字符串,一切正常: var links = document.getElementsByTagName("a"); var element; function search() { for (var i = 0; i < links.length; i++) { element = links[i]; var price = parseInt(element); if (element.href.indexOf

我目前正在分析第一个字符串,一切正常:

var links = document.getElementsByTagName("a");
var element;

function search() { 
    for (var i = 0; i < links.length; i++) {
        element = links[i];
        var price = parseInt(element);
        if (element.href.indexOf("http://www.myurl.com") == 0)  {
           //program goes here
        }
    }
 }
var links=document.getElementsByTagName(“a”);
var元素;
函数搜索(){
对于(变量i=0;i
但是,每个超链接(产品)都有另一个带有价格的字符串(在同一div元素中)。这看起来像这样:

 <span class="price_table_value">
            Pricetag:<br>
            <span style="color:white">239,--€ </span>
 </span>

价格标签:
239,--€
我也希望以某种方式解析它,并使用parseInt()将其转换为整数


我已经考虑了一个小时,但找不到一个好的解决方案(我仍然开始学习JS)。有什么帮助/想法吗?

试着用类似in的东西

基本上,这应该放在循环体中,但将
[0]
替换为
i
,并添加所需的逻辑:

var rawPrice = $(element).children('.price_table_value').children('span').text();
var price = parseFloat(rawPrice);
当然,只有当您100%确定价格格式将以价格值开始时,才可以这样做(
parseFloat
将修剪数字后面的任何内容,正如金刚所注意到的)。此外,您可能希望将其包装在try/catch块周围(最好在解析时始终这样做)


请注意,通常情况下,您可能应该从某种API中获取这些值,而不仅仅是从这样的DOM元素中获取这些值,因此请确保这就是您想要做的。

您可以尝试一下这个

function search() { 
for (var i = 0; i < links.length; i++) {
    element = links[i];
    var price =parseInt($(".price_table_value").value);
}
函数搜索(){
对于(变量i=0;i

}

没有jQuery的其他示例:

var priceHolder = Array.prototype.slice.call(document.querySelectorAll(".price_table_value span"));
priceHolder.forEach(function(item) {
    var price = /([0-9]+[.0-9]?)/.test(item.innerHTML) ? parseFloat(RegExp.$1) : 0;
    console.log(price);
});
以下是JSFIDLE的工作原理:

a
与该
span
标记的关系如何?(
span
被包装在
a
?)对于带有小数点的数字,比如价格,最好使用
parseFloat
来保留小数点(当然,除非你不想这样做)。我基本上只想先检查正确的链接,这是我在给定代码中做的,然后,如果找到感兴趣的项目,我希望能够将它的价格与我的最大值进行比较,并运行另一个if:
if(parseInt(右)\u code\u goes\u此处)@KingKing第一个JavaScript示例与HTML块无关。他提供的JavaScript块是他开始工作的另一个示例。现在他想为第二个HTML块编写一个脚本,以解析内部span中的int。@Xero让我困惑的是每个超链接(产品)有另一个带价格的字符串。所以我想知道这里的关系(具体的HTML结构,因为这很重要)。如果字符串以数字开头,则
parseFloat
将自动修剪非数字字符串的结尾并返回正确的数字,因此无需使用split。查看此演示谢谢,你是对的,当然,我忽略了这一点。更新了答案。好的,基本上我现在知道如何使用元素了,我唯一的问题是字符串没有不要以数字开头…因此
parseInt()
parseFloat()
将返回NaN。有什么解决方法/想法吗?它从什么开始?如果你在具有类价格表值的跨度内的跨度中得到的深度,那么只有“239,--€”要解析的字符串。哦,对不起,我想我已经回复了Vijay。您的解决方案非常完美,运行得很好。非常感谢:)asnwer已编辑。也将处理浮点数。