Javascript 在jqueryli中选择连续元素
我想在我的li中不断地选择元素 e、 g.1至5,即前5个元素或2至9的2至9个元素 所以,基本上我的要求是从点击的给定元素开始选择n个元素。 //下面是我的jquery方法,它帮助我在li中只选择1个元素Javascript 在jqueryli中选择连续元素,javascript,jquery,Javascript,Jquery,我想在我的li中不断地选择元素 e、 g.1至5,即前5个元素或2至9的2至9个元素 所以,基本上我的要求是从点击的给定元素开始选择n个元素。 //下面是我的jquery方法,它帮助我在li中只选择1个元素 $('.timeslots li')。在('click',function()上{ $(this).addClass('selected').sides().removeClass('selected'); selectedStartTime=$(this.text(); }); 。已选定
$('.timeslots li')。在('click',function()上{
$(this).addClass('selected').sides().removeClass('selected');
selectedStartTime=$(this.text();
});代码>
。已选定{
背景:蓝色;
}
- 01:00
- 01:30
- 02:00
- 02:30
- 03:00
- 03:30
- 04:00
- 04:30
- 05:00
- 05:30
- 06:00
基本上,如果要从单击的元素中选择n
元素,请尝试以下操作:
- 获取实际元素的索引
- 根据该索引和要选择的元素数量进行选择
$('.timeslots li')。在('click',function()上{
const amountToSelect=3;
const listCollection=$('.timeslots li')
const indexElement=listCollection.index($(this))
listCollection.removeClass('selected')
slice(indexElement,indexElement+amountToSelect.addClass('selected');
});代码>
。已选定{
背景:蓝色;
}
- 01:00
- 01:30
- 02:00
- 02:30
- 03:00
- 03:30
- 04:00
- 04:30
- 05:00
- 05:30
- 06:00
使用.index()存储单击元素的索引
定义步骤数
循环遍历索引中的步骤数
$('.timeslots li')。在('click',function()上{
$(this).addClass('selected').sides().removeClass('selected');
selectedStartTime=$(this.text();
//将单击元素的索引存储到变量
var clickedIndex=$(this.index();
//定义所需的步骤数
var desiredSteps=5;
//从索引开始循环+步骤数
对于(i=1;i
。已选定{
背景:蓝色;
}
- 01:00
- 01:30
- 02:00
- 02:30
- 03:00
- 03:30
- 04:00
- 04:30
- 05:00
- 05:30
- 06:00
你所说的“选择”到底是什么意思?@JerdineSabio我的意思是,如果我单击元素,颜色应该会更改为我在css文件中添加的颜色。我的代码中所选的类引用颜色。所以我的要求是,一旦我点击任何元素,我想连续选择n个元素。不,我想点击第二个元素,我想选择3个元素,所以当我点击第二个元素时,2,3和4将根据我从哪里开始自动选择。它基于我将要传递的输入。如果我将5作为输入传递,并单击第三个元素,则应选择3,4,5,6,7。如果我再次单击第1个元素,则应选择1,2,3,4,5,这与.slice()@JerdineSabio很相似,但您在提供的解决方案中没有使用slice()