【发布时间】:2017-12-19 20:42:30
【问题描述】:
我有嵌套列表在运行时动态地从数据库中提取,如下所示:
<div class="list"><ul>
<li>
listA
<ul>
<li>Alist1</li>
<li>Alist2</li>
<li>Alist3</li>
</ul>
</li>
<li>
listB
<ul>
<li>BList1</li>
<li>BList2</li>
<li>BList3</li>
</ul>
</li>
我想在单击时更改列表项的背景,但它通过以下方法更改所有嵌套列表的样式:
var $li = $('#list li').click(function () {
$li.removeClass('selected');
$(this).addClass('selected');
});
使用这种风格:
li.selected {
background-color: aqua;}
我知道我应该使用直接后代运算符 (>) 来强制更改为父级,但我的问题是列表是动态绘制的,我无法限制其级别和嵌套列表。
是否总是强制仅更改单击的项目?
【问题讨论】:
-
到目前为止你尝试了什么??
-
你想在哪个 li 上设置背景?你的第一个 ul 之后的第一个嵌套 li ?
-
@KolaCaine 我只想在单击时更改每个列表项的背景,但发生的情况是单击的列表项样式中的所有嵌套列表都发生了变化
-
例如添加一个
is-active类 CSS 并在单击时放置此类,然后在 CSS 上放置背景,或者如果您想要动态背景,您可以在 JS 文件中更改背景属性明白吗?
标签: javascript jquery html css list