javascript - 单击时编辑 div 类名称
问题描述
所以基本上我有一堆导航按钮,我想在用户单击按钮时更改它们的名称。
原始的 div 类名称类似于“home”,当用户单击它时,我希望它是“home_active”,以便 CSS 属性会更改背景图像。
$('.click').click(function() {
var clicked_url = $(this).attr('class');
var updated_url = clicked_url + "_active";
$(this).attr('class') = updated_url;
});
.item_active {
background-color: teal;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<a href="#" class="item">item 1</a>
<a href="#" class="item">item 2</a>
<a href="#" class="item">item 3</a>
解决方案
您应使用.addClass()
向元素添加类的方法:
$('.click').click(function() {
var clicked_url = $(this).attr('class');
var updated_url = clicked_url + "_active";
$(this).removeClass(clicked_url); // remove the old class
$(this).addClass(updated_url); // add the new class
});
但是,作为一种好的做法,最好在现有类中添加修饰符类,例如“active”,保留原始类名。
然后使用以下 CSS:
.click.active {
background: red;
}
JS 代码如下所示:
$('.click').click(function() {
$('.click.active').removeClass('active'); // remove active class from all other nav items
$(this).addClass('active'); // add active to the nav item the users just clicked on
});
推荐阅读
- ms-access - 如何组合2个access数据库表
- node.js - 如何在MongoDB数据库中回滚?
- c# - 从所有表中选择整个数据库的名称
- c# - bcp 永久保存 csv 文件,并且在从 c#.net 网站调用时不会将表中的任何内容写回 CSV
- selenium - 由于 selenium.WebDriverException,无法定向到 Microsoft Edge 中的页面:无法解析远程响应:未知错误
- python - 使用 df.loc[] 根据另一个为空的列值更新数据框列值
- android - 用于长期通知的 AlarmManager - 它有效
- dsc - 删除未知本地用户的 DSC 策略
- php - Mysql查询连接表无法使用where条件
- xml - PowerShell - 基于属性值获取所有 XML 节点