2012-01-24 49 views
2

我正在嘗試使用Nokogiri來刮取表單的select元素。如何獲取表單的選擇選項文本和值?

例如:

<select id="colors" name="colors"> 
    <option class="" value="1">Blue</option> 
    <option class="" value="2">Green</option> 
</select> 

我想1 => 'Blue'2 => 'Green'

我嘗試使用at_cssxpath但沒有運氣可言。

我猜這將是在正確的軌道:

doc.at_css("#colors option").each do |d| 
    puts d 
end 

這只是給了我一個:

value 

我可以使用XPath每個頁面上的文本option

回答

4
doc.css("#colors option").each do |d| 
  puts d.attr("value") 
    puts d.text 
end 

或作爲對象:

doc.css("#colors option").each_with_object({}) do |e,o| 
    o[e.attr("value")] = e.text 
end 
+0

Aghhhh。我正在使用at_css。 .css就是票。我現在感到很蠢。謝謝 – Lee

+1

有趣的功能風格:'map = Hash [doc.css('#colors option')。map {| o | [o ['value'],o.text]}]' – Phrogz

相關問題