Select jQuery 中使用 nth-of-type 的前十个元素
Select first ten elements using nth-of-type in jQuery
我正在尝试定位我页面上 class 为 .lazy
的前十张图片
我正在使用 unveil 延迟加载图像,它会等待滚动加载图像,但您可以使用以下行触发所有图像加载:
$("img").trigger("unveil");
我只想触发前 10 个图像始终直接显示,所以我尝试了这个:
$("#portfolio .portfolio-item img.lazy:nth-of-type(-n+10)").trigger("unveil");
在 CSS :nth-of-type(-n+10)
select 中是前十个匹配元素,但是当我在我的控制台上使用这个 jQuery
进行尝试时
$("img.lazy:nth-of-type(-n+10)")
..它 returns 每个 img 与 .lazy
的 class
我做错了什么?有没有办法 select 前十个而不是使用 jQuery 的 .eq
?
让您了解我的标记:
<div class="portfolio">
<div class="portfolio-item">
<img class="lazy" src="item-1.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-2.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-3.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-4.jpg">
</div>
etc... (there 20 items in total)
</div>
问题是每个 img 嵌套在一个单独的父级中吗?
您可以使用 lt
select 或 select 前 n
个元素。
Select all elements at an index
less than index within the matched set.
$("#portfolio .portfolio-item img.lazy:lt(10)").trigger("unveil");
您也可以使用slice()
。从某种意义上说,切片更强大,您可以在一系列元素之间应用属性
$("#portfolio .portfolio-item img.lazy").slice(0,10).trigger("unveil");
这是一个代码片段:
$(document).ready(function() {
$('div').slice(2, 5).css('background-color', 'red');
});
div {
border: 1px solid black;
height: 50px;
width: 50px;
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
我正在尝试定位我页面上 class 为 .lazy
我正在使用 unveil 延迟加载图像,它会等待滚动加载图像,但您可以使用以下行触发所有图像加载:
$("img").trigger("unveil");
我只想触发前 10 个图像始终直接显示,所以我尝试了这个:
$("#portfolio .portfolio-item img.lazy:nth-of-type(-n+10)").trigger("unveil");
在 CSS :nth-of-type(-n+10)
select 中是前十个匹配元素,但是当我在我的控制台上使用这个 jQuery
$("img.lazy:nth-of-type(-n+10)")
..它 returns 每个 img 与 .lazy
我做错了什么?有没有办法 select 前十个而不是使用 jQuery 的 .eq
?
让您了解我的标记:
<div class="portfolio">
<div class="portfolio-item">
<img class="lazy" src="item-1.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-2.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-3.jpg">
</div>
<div class="portfolio-item">
<img class="lazy" src="item-4.jpg">
</div>
etc... (there 20 items in total)
</div>
问题是每个 img 嵌套在一个单独的父级中吗?
您可以使用 lt
select 或 select 前 n
个元素。
Select all elements at an
index
less than index within the matched set.
$("#portfolio .portfolio-item img.lazy:lt(10)").trigger("unveil");
您也可以使用slice()
。从某种意义上说,切片更强大,您可以在一系列元素之间应用属性
$("#portfolio .portfolio-item img.lazy").slice(0,10).trigger("unveil");
这是一个代码片段:
$(document).ready(function() {
$('div').slice(2, 5).css('background-color', 'red');
});
div {
border: 1px solid black;
height: 50px;
width: 50px;
display: inline-block;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>
<div></div>