Javascript 为什么使用.next()会选择所有li项而不是一个

Javascript 为什么使用.next()会选择所有li项而不是一个,javascript,jquery,html,css,jquery-selectors,Javascript,Jquery,Html,Css,Jquery Selectors,我在使用我的ul上的jQuery.next()时遇到问题。我要做的是,当用户单击“下一步”按钮时,它只会将其添加到它旁边的li。出于某种原因,它不断地将其添加到每个列表项中。以下是一个工作示例: 这是因为您的选择器太通用了 $('ul.menu li') //--> will return all li's of the menu .next() //--> will return all the next li's to the selected li's 您可以将活动添加到第

我在使用我的
ul
上的jQuery
.next()
时遇到问题。我要做的是,当用户单击“下一步”按钮时,它只会将其添加到它旁边的
li
。出于某种原因,它不断地将其添加到每个列表项中。以下是一个工作示例:


这是因为您的选择器太通用了

$('ul.menu li') //--> will return all li's of the menu
.next() //--> will return all the next li's to the selected li's
您可以将活动添加到第一个
li
开始,然后单击下一步,选择
next
$(“ul.menu li:active”)
删除当前活动的。并对上一个应用程序执行相同的操作

你可以做:

HTML:


这是因为您的选择器过于通用

$('ul.menu li') //--> will return all li's of the menu
.next() //--> will return all the next li's to the selected li's
您可以将活动添加到第一个
li
开始,然后单击下一步,选择
next
$(“ul.menu li:active”)
删除当前活动的。并对上一个应用程序执行相同的操作

你可以做:

HTML:

这是因为
$('ul.menu li')
将选择
ul.menu
中的所有列表项
.next()
将为
$('ul.menu li')
中的每个元素查找下一个元素,因此在添加类时,您将处理多个元素

我认为您可能希望首先在
li
元素之一上使用活动类,然后使用如下内容:

$('ul.menu li.active').removeClass('active').next().addClass('active');
这是因为
$('ul.menu li')
将选择
ul.menu
中的所有列表项
.next()
将为
$('ul.menu li')
中的每个元素查找下一个元素,因此在添加类时,您将处理多个元素

我认为您可能希望首先在
li
元素之一上使用活动类,然后使用如下内容:

$('ul.menu li.active').removeClass('active').next().addClass('active');

你需要跟踪下一个事件

var currentLi = $('.menu li').first();
$('a.next').click(function(){   
    if(!currentLi.hasClass('active')) {
        currentLi.addClass('active');
    } else {
        currentLi.removeClass('active');
        currentLi = currentLi.next();
        currentLi.addClass('active');
    }
});
我用叉子叉了你的腰

您需要跟踪下一个事件

var currentLi = $('.menu li').first();
$('a.next').click(function(){   
    if(!currentLi.hasClass('active')) {
        currentLi.addClass('active');
    } else {
        currentLi.removeClass('active');
        currentLi = currentLi.next();
        currentLi.addClass('active');
    }
});
我用叉子叉了你的腰

您选择了所有列表项,然后选择了下一个列表项,该列表项将是除第一个之外的所有列表项。您的逻辑/选择器有缺陷。“…在它旁边”在什么旁边???您选择了所有列表项,然后选择了下一个列表项,这将是除第一个之外的所有列表项。您的逻辑/选择器有缺陷。“…在它旁边”在什么旁边???