使用:gt()选择器从元素集合中选择最后5个元素

时间:2014-05-08 06:38:38

标签: jquery jquery-selectors

考虑一下,我选择了包含10行的tr中的所有table个元素,现在我只是尝试使用以下方式过滤掉最后5个元素

var xTrs = $('tr');
var xLastTrs = xTrs.filter(':gt('+ (xTrs.length - 6) +')');

现在,当我在该表中有超过5行时,上面的代码片段工作正常,但是当场景变为类似时,表只有5行,选择器被验证为xTrs.filter(':gt(-1)');并且它是拒绝取得预期的结果。

我在这里做错了什么..?我以为:gt(-1)会在该上下文中选择索引从0到4的所有元素。如果我以错误的方式思考,请纠正我。

顺便说一下,首先告诉我如何通过:gt()实现这一目标,之后让我知道其他一些有效的方法。

3 个答案:

答案 0 :(得分:4)

在过滤前测试xTrs.length是否超过5

xLastTrs = (xTrs.length <= 5) ? xTrs ? xTrs.filter(':gt('+ (xTrs.length - 6) +')');

答案 1 :(得分:4)

:gt支持负面指数

  

否定指数:从零开始的指数,从最后一个元素向后计数。

var xTrs = $('tr');
var xLastTrs = xTrs.filter(':gt(-5)');

也是切片

var xLastTrs = xTrs.slice(-5);

答案 2 :(得分:0)

尝试,

var xTrs = $('tr');
var xLen = xTrs.length - 5;
var xLastTrs = xTrs.filter(':eq('+ xLen +'),:gt(' + xLen + ')');

聪明不是。?