使用jQuery从html中提取价格

时间:2012-03-27 15:05:14

标签: php jquery jquery-selectors phpquery

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

UPDATE :我实际上正在使用一个名为phpQuery的jQuery端口用于php。

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();
        }   
    }
}

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

2 个答案:

答案 0 :(得分:0)

以前给出

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

答案 1 :(得分:0)

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

按班级选择:$(".Price")

显示您的HTML会有所帮助。