我正在使用nokogiri gem,我想提取分页的最后一个数字(4):nth-last-of-type(3)或nth-last-child(3)但在我的红宝石中显示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>
我的问题是,如果存在另一种替代方法,可以使用nokogiri gem中的另一个css3属性获取最后一个数字(4)。
我的css示例正在此处运行:http://jsfiddle.net/kfDgR/
我希望,你可以指导我,
答案 0 :(得分:1)
您需要小心last-child
和last-of-type
,它们并不总是意味着您的想法,而且规格含糊不清。我建议:
doc.search('li.pag-item').last
答案 1 :(得分: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"