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');
}
});
我用叉子叉了你的腰
您选择了所有列表项,然后选择了下一个列表项,该列表项将是除第一个之外的所有列表项。您的逻辑/选择器有缺陷。“…在它旁边”在什么旁边???您选择了所有列表项,然后选择了下一个列表项,这将是除第一个之外的所有列表项。您的逻辑/选择器有缺陷。“…在它旁边”在什么旁边???