我有以下HTML文档:
<ul>
<li><span>Some text</span></li>
<li><span>Some other text</span></li>
<li><span>Some more text</span></li>
</ul>
如何使用Hpricot循环列表项并在每个项的开头插入一些新的HTML,以便我得到以下内容:
<ul>
<li><span>1</span><span>Some text</span></li>
<li><span>2</span><span>Some other text</span></li>
<li><span>3</span><span>Some more text</span></li>
</ul>
如果新跨度的内容已修复,我可以使用:
(doc/"li").prepend "<span>fixed</span>"
我的问题来自变量span的内容:如何在prepend循环中使用索引?
答案 0 :(得分:2)
试试这段代码:
require 'rubygems'
require 'hpricot'
html = <<-EOF
<ul>
<li><span>Some text</span></li>
<li><span>Some other text</span></li>
<li><span>Some more text</span></li>
</ul>
EOF
doc = Hpricot(html)
(doc/'li/span').each_with_index do |element,index|
value = index + 1
element.before "<span>#{value}</span>"
end
puts doc.to_s
答案 1 :(得分:0)
使用each_child迭代每个li元素,并使用块来增加每次迭代的索引。