Javascript 我能';t句柄选择正确的div(使用Jquery)
Javascript 我能';t句柄选择正确的div(使用Jquery),javascript,jquery,jquery-selectors,Javascript,Jquery,Jquery Selectors,$(文档).ready(函数(){ $(“.myClass”)。单击(函数(){ $(.myClass),$(this)).first().scrollIntoView({behavior:“smooth”,block:“start”}); }); }); .myClass{ 光标:指针; } 我点击这个div 一些随机文本 一些随机文本 我想滚动到此分区 这将起作用,无需jQuery 以下是小提琴的例子: JS 让scrollToNext=0; const elements=document
$(文档).ready(函数(){
$(“.myClass”)。单击(函数(){
$(.myClass),$(this)).first().scrollIntoView({behavior:“smooth”,block:“start”});
});
});代码>
.myClass{
光标:指针;
}
我点击这个div
一些随机文本
一些随机文本
我想滚动到此分区
这将起作用,无需jQuery
以下是小提琴的例子:
JS
让scrollToNext=0;
const elements=document.querySelectorAll('.myClass');
document.getElementById('btn')。addEventListener('click',()=>{
++滚动文本
if(滚动文本<元素长度){
元素[scrollToNext].scrollIntoView();
}
})
说明:
单击按钮后增加计数器以滚动到所需的元素(按指定的类名查找元素)
每次单击发生时,计数器将递增一,因此选择下一个元素。当计数器达到找到的元素的最大数量时,它不再增加。
- 直到您的html结构
.myClass
在其级别上没有任何下一个.myClass
。。请参阅下一个代码
$('.myClass')。在('click',function()上{
$(本)
.parent()//选择父div
.nextAll('div:has(.myClass)//选择下一个包含.myClass的div
.first()//下一步只选择一个div
.find('.myClass')//在此div中查找.myClass
.addClass('Next');//向其中添加类
});代码>
。下一步{
背景:红色;
颜色:#fff;
}
我的班级
其他
其他
我的班级
其他
其他
我的班级
感谢您的帮助,很遗憾,我只能接受一个答案来解决问题,但您的解决方案非常有用,因为您不应该选择btn
作为(希望是)ID元素。始终使用getElement*
或querySelector*
@RokoC.Buljan这只是一个如何解决OP问题的示例。。。当然,我应用了您的建议并更新了fiddle.js示例
let scrollToNext = 0;
const elements = document.querySelectorAll('.myClass');
document.getElementById('btn').addEventListener('click', () => {
++scrollToNext
if (scrollToNext < elements.length) {
elements[scrollToNext].scrollIntoView();
}
})