我正在解析一个html文档,并且需要提取其中的所有价格(格式为$ 99.00)。所以我想要做的是提取其类或id属性中包含“Price”(或“price”)子字符串的所有元素。但我尝试使用类似$(“[class * ='Price']”)或$(“[id * ='Price']”),然后在数组上连接结果,但jquery选择器部分工作不正常,没有找到任何东西。我做错了什么,还是有更好的方法来做到这一点?任何建议更好的方法? 谢谢。使用jQuery从html中提取价格
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();
}
}
}
这是打印正确的元素。现在我需要提取这些元素的字体大小,以便我可以按字体大小对数组进行排序。
请添加jsfiddle的HTML。 – iambriansreed 2012-03-27 15:07:03
显示您的代码。 – Ryan 2012-03-27 15:08:43