-1

我正在使用 nokogiri gem,我想用 :nth-last-of-type(3) 或 nth-last-child(3) 提取分页的最后一个数字(4),但在我的 ruby​​ 测试中显示 0。

<ul class="pag">
    <li class="pag-first">first</li>
    <li class="pag-item"><a href"#">2</a></li>
    <li class="pag-item"><a href"#">3</a></li>
    <li class="pag-item"><a href"#">4</a></li>
    <li class="pag-next"><a href"#">next</a></li>
    <li class="pag-last"><a href"#">last</a></li>
</ul>

我的问题是,是否存在另一种替代方法来获取最后一个数字 (4) 以及 nokogiri gem 中的另一个 css3 属性。

我的 css 示例在这里运行:http: //jsfiddle.net/kfDgR/

我希望,你可以指导我,thk。

4

2 回答 2

1

您需要小心last-childand last-of-type,它们并不总是意味着您认为它们所做的事情,并且规格不明确。我建议:

doc.search('li.pag-item').last
于 2013-08-03T09:38:39.877 回答
0

使用 XPATH 很好:

require 'nokogiri'

doc = Nokogiri::HTML::Document.parse <<-_HTML_
<ul class="pag">
    <li class="pag-first">first</li>
    <li class="pag-item"><a href"#">2</a></li>
    <li class="pag-item"><a href"#">3</a></li>
    <li class="pag-item"><a href"#">4</a></li>
    <li class="pag-next"><a href"#">next</a></li>
    <li class="pag-last"><a href"#">last</a></li>
</ul>
_HTML_

doc.at("//ul[@class = 'pag']/li[4]").text
# => "4"

doc.at("//li[@class='pag-item'][last()]").text
# => "4"
于 2013-08-03T09:26:39.660 回答