i .removeClass('active')如何为我的一个<元素与jQuery
How do i .removeClass('active') for just one of my <li> elements with jQuery?
我遇到了一些问题,我想知道如何从我的一个列表中删除class=" active"。
我有一个导航栏:<div class="container">
<ul class="nav">
<li class="active"><a href="#"></a>Home</li>
<li><a href="#"></a>About</li>
<li><a href="#"></a>Contact</li>
</ul>
</div>
我也有一个菜单在Home:
<div class="container_2">
<ul>
<li class="left-main-list active"><a href="#">Subject 1</a></li>
<ul class="list-in-list">
<li><a href="#">Sub subject 1</a></li>
<li><a href="#">Sub subject 2</a></li>
</ul>
<li class="left-main-list><a href="#">Subject 2</a></li>
<li class="left-main-list><a href="#">Subject 3</a></li>
</ul>
</div>
当我在主页上浏览我的菜单时,我想在点击时将活动列表项类更改为活动,所以我现在有这个jQuery代码:
$(document).ready(function() {
$('li').click(function() {
$('li').removeClass('active');
$(this).addClass('active');
});
});
这适用于我的菜单,类更改为当前一个,但它也删除了我的导航栏类,这是我不想要的。:)
我试过这样做:
$(document).ready(function() {
$('.left-main-list').click(function() {
$('.left-main-list li').removeClass('active');
$(this).addClass('active');
});
});
我试过了。Left-main-list li' &"李。Left-main-list '没有任何成功
非常感谢你对这个问题的回答,我希望我的问题(这次)比我以前的问题更准确。:)
比尔ps:一个副标题和一个主标题可以同时处于活动状态吗?如果你点击另一个副标题,而主标题仍然处于活动状态,那么这个副标题的活动类别会被删除吗?
当我在首页浏览我的菜单时,我想更改标题活动列表项类在单击
时变为活动
您可以只针对相关div
中的li
s,类似于:
$(document).ready(function() {
var $listItems = $('div.container_2 li');
$listItems.click(function() {
$listItems.removeClass('active');
$(this).addClass('active');
});
});
DEMO -目标li
s仅在.container_2
内
仍然针对容器,您可以使用jQuery的parent(),类似于:子主语和主主语可以同时激活吗那个子主题的活动类,被移除,如果你单击另一个子主题,但主项目仍然有它的类活跃的?
$(document).ready(function () {
$('div.container_2 li').click(function () {
var $this = $(this);
var $children = $this.parent().find('li');
$children.removeClass('active');
$this.addClass('active');
});
});
DEMO -使用parent()
允许活动菜单和子菜单,但当主菜单更改时不允许
我考虑了在不同主菜单元素的子菜单之间切换时,在链条上添加激活项的可能性。
修复嵌套ul
s的HTML,即您的嵌套ul
s在li
s内,而不是仅仅在上部ul
内,您可以做一个完全动态的实现。
假设你的HTML像这样:
<div class="container">
<ul class="nav">
<li class="active"><a href="#"></a>Home</li>
<li><a href="#"></a>About</li>
<li><a href="#"></a>Contact</li>
</ul>
</div>
<div class="container_2">
<ul>
<li class="left-main-list active"><a href="#">Subject 1</a>
</li>
<li>
<ul class="list-in-list">
<li><a href="#">Sub subject 1</a>
</li>
<li><a href="#">Sub subject 2</a>
</li>
<li>
<ul class="list-in-list">
<li><a href="#">Sub subject 1</a>
</li>
<li><a href="#">Sub subject 2</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="left-main-list"><a href="#">Subject 2</a>
</li>
<li class="left-main-list"><a href="#">Subject 3</a>
</li>
</ul>
</div>
现在,使用下面的脚本,你还可以使任何子菜单项的父菜单项在从一个子菜单更改为另一个主菜单项中的另一个子菜单项时处于活动状态,类似于:
$(document).ready(function () {
$('div.container_2 li>a').click(function () {
var $this = $(this);
var $relatedElements = $this.parents('ul').find('li');
if($this.hasClass('active')){
return;
}
$relatedElements.removeClass('active');
$this.parent('li').addClass('active');
var $parents = $this.parents('li');
$parents.each(function(){
$(this).not($this.parent()).prev().addClass('active');
});
});
});
DEMO -链式激活
我认为这应该有所有可能的例子,让你从这里开始。
试试这个:
$("li").click(function() {
$(this.parentNode).children("li").removeClass("active");
$(this).addClass("active");
});
这将只影响您所单击的元素的兄弟元素。
$('.left-main-list').click(function() {
$('.left-main-list').removeClass('active');
$(this).addClass('active');
});
我想你要找的是这个:
$(document).ready(function() {
$('li').click(function() {
$('li.left-main-list').removeClass('active');
$(this).addClass('active');
});
});
$('li').on ('click', function (){
$(this).addClass ('active').siblings ('li').removeClass ('active');
})
- 我已经创建了一个jquery转盘,并使用if条件来运行和停止转盘
- 按照选项卡索引的顺序循环一个jQuery选择
- 在创建对象后附加一个jquery事件
- 我需要一个jQuery函数来只工作在700px以上的屏幕大小,无法在我的代码中发现错误
- 一个jquery验证器方法,它不接受纯数字或纯特殊字符,但接受上面是否有字母
- 我做了一个jquery幻灯片,但没有;我工作不好,我该怎么办
- 我创建了一个jQuery幻灯片,但它一直在重复相同的图像
- 是preventDefault()一个jQuery函数或javascript函数
- 使用一个 jquery 代码关闭多个模态
- 如何在 elfinder(一个 jquery 文件管理器插件)中只显示文件夹列表
- 遍历下一个和上一个 jQuery 选项卡
- module.exports一个jQuery插件
- 有没有一个jquery marquee插件/脚本可以处理不同宽度的图像
- 一个jquery初始化中有多个类
- 如何从其中的另一个jquery脚本运行.load()
- 从 javascript 数组创建一个 Jquery 数组
- 第一个jquery事件正在发生,但没有发生第二个事件
- 向一个jQuery/DOM元素添加一个函数
- 我们如何在jQuery Datatable调用结果中启动另一个jQuery插件,而不是页面就绪函数
- 我可以自动生成一个jquery块,对不同的元素做同样的事情吗