2014-02-09 23 views
2

我想通過他們的類名獲取一些元素。這裏是HTML文件:爲什麼getElementsByClass在jsoup中不起作用?

<div id="container"> 
    <div id="page_clips"> 
     <div id="content" class="margin-right-5"> 
      <div class="product-grid margin-left-5"> 
       <div>.....</div> 
       <div>.....</div> 
       <div>.....</div> 
      </div> 
     </div> 
    </div> 
</div> 

在這裏,我想得到的是,具有類=「product-grid margin-left-5」的div。 這裏是我做的:

Document doc = Jsoup.connect(link).get(); 
Element page_clips = doc.getElementById("page_clips"); 
Element page_clip_content = page_clips.getElementById("content"); 

這段代碼成功地獲取id爲「內容」股利。然後當我嘗試,

Elements elementsIWantToGet= page_clip_content.getElementsByClass("product-grid margin-left-5"); 

它返回空。我究竟做錯了什麼?是不是該div的class屬性的名稱是「product-grid margin-left-5」?誰能幫忙?

感謝

回答

4

因爲getElementsByClass不支持多類名。通過給它"product-grid margin-left-5",你的意思是找到這兩個類的所有元素?或者或者類?

無論哪種方式,使用select,它接受CSS選擇器:

對於元素都

.. = page_clip_content.select(".product-grid.margin-left-5"); 

對於元素要麼

.. = page_clip_content.select(".product-grid, .margin-left-5"); 
+0

謝謝你,無論解決方案爲我工作,但我不得不做一個小小的修改。當我查看頁面上的html源代碼時,類名稱有產品網格,但是當我使用jsoup獲取它時,我發現calss名稱具有產品列表,而不是產品網格。這對我來說似乎很奇怪,你有沒有想過爲什麼會這樣? – yrazlik

+0

@panpa:聽起來就像頁面上有改變類的JavaScript一樣。 –

相關問題