我正在解析一个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();
}
}
}
这是打印正确的元素。现在我需要提取这些元素的字体大小,以便我可以按字体大小对数组进行排序。
答案 0 :(得分:0)
以前给出
$(function(){
$('.price').each(function(){
//create your array here of $(this).val() or $(this).html()
});
});
答案 1 :(得分:0)
按ID选择:$("#Price")
按班级选择:$(".Price")
显示您的HTML会有所帮助。