【问题标题】:Extracting prices from html using jQuery使用jQuery从html中提取价格
【发布时间】:2012-04-11 03:26:16
【问题描述】:

我正在解析一个 html 文档,我需要提取其中的所有价格(格式为 99.00 美元)。所以我想要做的是提取所有在其类或 id 属性中包含子字符串“价格”(或“价格”)的元素。但是我尝试使用 $("[class*='Price']") 或 $("[id*='Price']") 之类的东西,然后将结果连接到数组上,但是 jquery 选择器部分无法正常工作,没有找到任何东西。我做错了什么,还是有更好的方法来做到这一点?对更好的方法有什么建议吗? 谢谢。

更新:我实际上使用的是一个名为 phpQuery 的 jQuery 端口。

UPDATE2:我不知道元素的确切类或 id,因为这是一个通用脚本,我将在不同的电子商务网站上运行,这就是我使用*= 通配符来获取所有元素(主要是 a、div、span 等,我不需要输入)。我想通了,这就是我目前所拥有的:

function getPrice($doc){
    phpQuery::selectDocument($doc);
    $prices = array();
    foreach(pq("[class*='Price'], [class*='price'], [id*='Price'], [id*='price']") as $res){    
        $each = pq($res);

        if(preg_match('/\$\d+(?:\.\d+)?/', $each->text(), $matches)){
            echo '<br>'.$matches[0].'</br>';
            $prices[] = $each->html();
        }   
    }
}

这是打印正确的元素。现在我需要提取这些元素的字体大小,以便可以按字体大小对数组进行排序。

【问题讨论】:

  • 请添加HTML的jsfiddle。

标签: php jquery jquery-selectors phpquery


【解决方案1】:

按 ID 选择:$("#Price")

按类别选择:$(".Price")

显示您的 HTML 会有所帮助。

【讨论】:

    【解决方案2】:

    先给这个

    $(function(){
        $('.price').each(function(){
            //create your array here of $(this).val() or $(this).html()
        });
    });
    

    【讨论】:

    • 显然在同价位的商品上试试这个。如果是输入则使用 $(this).val,如果是 div/span/a/etc 则使用 $(this).html :)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-03
    • 2017-03-20
    相关资源
    最近更新 更多