javascript - 在jquery li中选择连续元素
问题描述
我想在我的 li eg1 到 5 中连续选择元素,即前 5 个元素或从 2 到 9 的 2 到 9 个元素所以,基本上我的要求是从单击的给定元素开始选择 n 个元素。//这是我的 jquery 方法,它可以帮助我在 li 中只选择 1 个元素
$('.timeslots li').on('click', function() {
$(this).addClass('selected').siblings().removeClass('selected');
selectedStartTime = $(this).text();
});
.selected {
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="timeslots">
<li class="leftarrow"> </li>
<li> 01: 00</li>
<li> 01: 30</li>
<li> 02: 00</li>
<li> 02: 30</li>
<li> 03: 00</li>
<li> 03: 30</li>
<li> 04: 00</li>
<li> 04: 30</li>
<li> 05: 00</li>
<li> 05: 30</li>
<li> 06: 00</li>
<li class="rightarrow"> </li>
</ul>
解决方案
基本上,如果您想n
从单击的元素中选择元素,请尝试以下操作:
- 获取实际元素的索引
- 根据该索引和要选择的元素数量进行选择。
$('.timeslots li').on('click', function() {
const amountToSelect = 3;
const listCollection = $('.timeslots li')
const indexElement = listCollection.index($(this))
listCollection.removeClass('selected')
listCollection.slice(indexElement, indexElement+amountToSelect).addClass('selected');
});
.selected {
background: blue;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul class="timeslots">
<li class="leftarrow"> </li>
<li> 01: 00</li>
<li> 01: 30</li>
<li> 02: 00</li>
<li> 02: 30</li>
<li> 03: 00</li>
<li> 03: 30</li>
<li> 04: 00</li>
<li> 04: 30</li>
<li> 05: 00</li>
<li> 05: 30</li>
<li> 06: 00</li>
<li class="rightarrow"> </li>
</ul>
推荐阅读
- docker - 如何更改inet以在docker-Compose中运行expo
- android - 片段中的TextView“在空对象引用上”
- javascript - 在 p5.js 中使用 loadImage 的正确方法?
- go - Go build 找不到使用 dep 确保的供应商包
- cassandra - 聊天 - 带有 cassandra 的应用程序(数据模型)
- wordpress - 如果 Webhooks 响应错误,则停止 Ninja Forms 的进度
- android - 如何根据屏幕分辨率调整图像大小并将图像加载到android应用程序(ImageView)中?
- typo3 - TYPO3 CASE with Templavoilà FCE id
- java - 如何通过方法引用访问对象对象内部的方法
- node.js - Mongodb Shell 命令执行以通过 nodejs 删除集合