Jquery slice()与:gt:lt不一样吗?
我对此有点好奇。我认为Jquery slice()与:gt:lt不一样吗?,jquery,Jquery,我对此有点好奇。我认为slice()与:gt:lt几乎相同,但这里是 如您所见,绿色背景不适用于.nr4。为什么会这样?您何时正确使用slice()而不是:gt:lt $(document).ready(function () { $('.nr1 li').slice(2, 5).css('background', 'red'); $('.nr2 li:gt(1):lt(3)').css('background', 'blue'); //$('ul:gt(1)').fin
slice()
与:gt:lt
几乎相同,但这里是
如您所见,绿色背景不适用于.nr4
。为什么会这样?您何时正确使用slice()
而不是:gt:lt
$(document).ready(function () {
$('.nr1 li').slice(2, 5).css('background', 'red');
$('.nr2 li:gt(1):lt(3)').css('background', 'blue');
//$('ul:gt(1)').find('li:gt(2)').css('background', 'purple');
$('ul').slice(2, 4).find('li:lt(2)').css('background', 'yellow'); // .nr3 and .nr4 has a yellow background
$('ul').slice(2, 4).find('li').slice(4, 6).css('background', 'green'); // .nr3 has green background but .nr4 does not
});
对以前的结果(
$('ul').slice(2,4)
)执行.find
,并分析结果中的每个元素及其条件(选择上下文的后代),为每个元素开始一个新的索引计数
.find('li:lt(2)
:
而.find('li')
首先返回所有12项的结果
li1 li2 li3 li4 li5 li6
li7 li8 li9 li10 li11 li12
并且.slice(4,6)
将在整个集合上执行,从而返回第一行(或示例中的第三行)的最后3项
如果您使用.slice(6,8)
,您将看到最后一行的前两个块将被涂成绿色
另一个例子:使用$('ul').find('li:first').css('background','yellow')代码>每行的第一个块将被着色。
但是使用$('ulli:first').css('background','yellow')
只有第一行的块将被着色,因为索引将根据所有li
s的总和确定
注意:这些只是观察,不能真正找到一个好的参考,这是预期的行为,我只是假设它是。对以前的结果($('ul').slice(2,4)
)执行.find
,并分析结果中的每个元素及其标准(选择上下文的后代),开始每个元素的新索引计数
.find('li:lt(2)
:
而.find('li')
首先返回所有12项的结果
li1 li2 li3 li4 li5 li6
li7 li8 li9 li10 li11 li12
并且.slice(4,6)
将在整个集合上执行,从而返回第一行(或示例中的第三行)的最后3项
如果您使用.slice(6,8)
,您将看到最后一行的前两个块将被涂成绿色
另一个例子:使用$('ul').find('li:first').css('background','yellow')代码>每行的第一个块将被着色。
但是使用$('ulli:first').css('background','yellow')
只有第一行的块将被着色,因为索引将根据所有li
s的总和确定
注意:这些只是观察结果,无法真正找到一个很好的参考来证明这是预期行为,我只是假设它是。.slice([开始基于0的索引,包括],[结束基于0的索引,排除])因此[0,1,2,3,4]。slice(1,3)
返回[1,2]
因为索引1是1,索引3是3,但不包括在内。如果存在:gte
(大于或等于)这样的情况,则起点等于=
或:gte
。但是:gt
相当于
而不是=
。因此,您可以对:gl(start):lt(end)
.slice([start 0-based index,inclusive],[end 0-based index,exclusive])的等价项执行.slice(start+1,end)
操作,因为索引1是1,索引3是3,但它不包括在内。如果存在:gte
(大于或等于)这样的情况,则起点等于=
或:gte
。但是:gt
相当于
而不是=
。因此,您可以对:gl(start):lt(end)
.slice([start 0-based index,inclusive],[end 0-based index,exclusive])的等价项执行.slice(start+1,end)
操作,因为索引1是1,索引3是3,但它不包括在内。如果存在:gte
(大于或等于)这样的情况,则起点等于=
或:gte
。但是:gt
相当于
而不是=
。因此,您可以对:gl(开始):lt(结束)