html - 使用 jQuery 获取可见 DIV 的正确位置
问题描述
我有以下代码,其中一些 div 被隐藏,只有像“2020”这样的类的 div 才可见
$(document).ready(function(){
$('.listCard').hide();
$('.listCard.2020').show();
console.log("last visible -->"+$(".listCard.2020:visible:last").index());
console.log("First visible -->"+$(".listCard.2020:visible:first").index());
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="row">
<div class="col-sm listCard 2018">2018</div>
<div class="col-sm listCard 2019">2019</div>
<div class="col-sm listCard 2019">2019</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2018">2018</div>
<div class="col-sm listCard 2019">2019</div>
<div class="col-sm listCard 2019">2019</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2020">2020</div>
<div class="col-sm listCard 2020">2020</div>
</div>
但是,当我得到第一个和最后一个 div 的索引时,它是可见的并且具有“2020”类,它显示的结果与预期的不同。
预期的结果是第一个可见的应该是 0,最后应该是 6。我只需要显示 div 位置的变量,我们可以使用任何其他方法。
解决方案
布赖恩帕特森的回答是正确的。我对它做了一些调整。希望它会奏效。
$(document).ready(function(){
if($(".listCard").hasClass("2020")){
$(".listCard.2020").show();
let listItems = $('.listCard.2020').slice(0);
console.log("First: " + $('.listCard.2020').index(listItems));
listItems = $('.listCard.2020').slice(-1);
console.log("Last: " + $('.listCard.2020').index(listItems));
}
});
推荐阅读
- python - Anaconda 安装的 cudatoolkit 和 cudnn 会影响我当前的配置吗?
- python - 如果索引不同,如何停止 Pandas 中的 Shifting 列
- artifactory - 从 jcenter 下载时出现工件证书错误
- spring - 全栈应用程序 - 在哪里填写非用户定义的字段?| 正面还是背面?
- redis - 从服务器获取 redis 密钥
- android - 如何让 Apps Link Assistant 打印到 Android Studio 中的 Logcat?
- angular - Angular 表单数组,第一个索引始终为空
- python - 当它不断失败时,如何在 Pycharm 中安装旧版本的 Pip?
- python - 试图将带有边缘的 txt.file 转换为 edgelist
- c - 使用 strtok 并填充数组