Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery slice()与:gt:lt不一样吗?_Jquery - Fatal编程技术网

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(结束)