所以基本上我有一堆导航按钮,我想在用户点击按钮时更改它们的名称。
原始的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
});

关于javascript - 单击时编辑div类名称,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/56909547/

10-12 16:20