2012-03-27 70 views
0

我正在解析一個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(); 
     } 
    } 
} 

這是打印正確的元素。現在我需要提取這些元素的字體大小,以便我可以按字體大小對數組進行排序。

+2

請添加jsfiddle的HTML。 – iambriansreed 2012-03-27 15:07:03

+0

顯示您的代碼。 – Ryan 2012-03-27 15:08:43

回答

0

選擇通過ID:$("#Price")

選擇通過類別:$(".Price")

顯示你的HTML會有所幫助。

0

給這個前

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

明顯嘗試與類價格的物品。使用$(this).val如果它是一個輸入或$(this).html如果它是一個div/span/a/etc :) – 2012-03-27 15:09:09