无法更改 UL 中所选 li 项目的背景颜色
Unable to change the background color of the selected li item in a UL
我需要你的帮助,
如何更改 UL 列表中所选 LI 项目的背景(使用 jQuery)。就像现在一样,唯一改变的是我列表的整个背景。最后要注意的是,如果选择了新的 LI 项目,颜色应默认为白色。
<!DOCTYPE html>
<html>
<script src="jquery.min.js"></script>
<head>
<style type="text/css">
#container {
width: 200px;
}
#list1 {
border: 1px solid red;
width: 100%;
}
#list1 ul {
margin: 0;
padding: 3px;
list-style-type: none;
}
#list1 li {
cursor: default;
}
.selected {
background: blue;
}
</style>
<script type="text/javascript">
window.onload = function() {
$('#list1').click(function(){
var that = $(this);
that.closest('li').find('.selected').removeClass('selected');
that.addClass('selected');
});
}
</script>
</head>
<body>
<div id="container">
<div id="list1">
<ul>
<li>Coffee</li>
<li>Tea</li>
<li>Milk</li>
</ul>
</div>
</div>
</body>
</html>
试试这个:
var $items = $('#list1 li').click(function() {
$items.removeClass('selected');
$(this).addClass('selected');
});
没有理由继续为此任务选择新元素。只需创建所有列表项($items)
)的集合,并重用它来从上一项中删除selected
类。
这里不需要.closest()
,因为#list1
是你li
的祖先:
that.find('li.selected').removeClass('selected');
但实际上,我认为您要做的是将.active
添加到单击的li
并从其他li
中删除此active
类,如果是这种情况,那么您可以执行以下操作:
$('#list1 ul li').click(function () {
$('#list1 ul li').removeClass('selected');
$(this).addClass('selected');
});
小提琴演示
相关文章:
- 隐藏/显示包含单词的ul li项目.但只能入住李的子女
- 如何让li项目在这个jQuery列表中滑动和/或淡出视图
- 使用下划线一个接一个地替换每个项目(li)
- 更改js中的li项目符号颜色
- 难倒了将功能应用于所有 li 项目
- 将类添加到 LI 中,每 7 个项目使用 JQuery LI
- 从 ul li jquery 获取所选项目
- 如何在HTML中的li项目上创建右键单击自定义菜单
- 棱角分明.js NG重复的带有HTML内容的LI项目
- 当我在父 li 上选择一个项目时,如何在它上添加一个活动类.使用 JavaScript
- on单击li项目上的事件,以更改文本字段
- jQuery子菜单:LI项目仍在切换
- 从本地存储中清除选中的li项目
- 在单独的UL中搜索匹配的LI项目
- .first('li)选择列表中第一个不起作用的项目
- 格式错误的HTML:如何不在空的li元素上显示项目符号
- 试图让导航切换到关闭后,li项目已被选中
- 上下移动Ul-Li中的项目
- 更新 :为每个数组项目添加 Li 标签
- 无法更改 UL 中所选 li 项目的背景颜色