0

如何有效地从末尾获取一定数量的元素?

<div><span>1</span></div>
<div><div>looks like 2</div></div>
<div>three!!</div>

例如,我将如何获取最后 2div秒的内容?

4

3 回答 3

1

如果您的意思是使用 JQuery,它将是这样的(正如我对您的问题的理解)

var last = 5;
jQuery('body> div:nth-last-child('+(last+1)+') ~div')
于 2013-06-27T05:55:20.087 回答
1

如果您正在寻找 xpath 查询 - 您可以在 Javascript 或 PHP 中使用:

*[position() > last() - 2]

您相对于作为父级的上下文节点执行它:

$doc = new DOMDocument();
$doc->loadXML($xml);

$context = $doc->documentElement;
$xp = new DOMXPath($doc);

$elements = $xp->query('*[position() > last() - 2]', $context);
var_dump($elements->length);

foreach($elements as $i => $element) {
    printf("%d: %s\n", $i, $doc->saveXML($element));
}

输出:

int(2)
0: <div>
    <div>looks like 2</div>
  </div>
1: <div>three!!</div>

希望这可以帮助。我采取了美化XML的权利。在线演示在这里

于 2013-06-27T07:19:58.933 回答
1
$(document).ready(function(){
    var total = $("div").length;
    var last  = $("div").eq(total-1).html();
    var secondlast  = $("div").eq(total-2).html();
});

在此处查看演示

于 2013-06-27T07:32:56.583 回答