【发布时间】: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