1

我有以下 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>"

我的问题来自变量跨度的内容:如何在前置循环中使用索引?

4

2 回答 2

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
于 2009-11-09T02:12:50.383 回答
0

使用 each_child 迭代每个 li 元素,并使用一个块来增加每次迭代的索引。

于 2009-10-30T04:07:17.743 回答