考虑一下,我选择了包含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()
实现这一目标,之后让我知道其他一些有效的方法。
答案 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 + ')');
聪明不是。?