javascript - 使用 jquery 更改单击按钮的 html 代码时遇到问题

标签 javascript jquery html

我在 html 中有一个按钮:

<button class="addbtn"><i class="fas fa-plus-circle"></i></button>

我想在点击时更改按钮的 html 代码(图标)。新的 html 代码是:

<button class="addbtn"><i class="fas fa-times-circle"></i></button>

我想每次点击按钮时切换到另一个图标。 所以我使用了这段代码:

$(document).ready(function(){
        $(".addbtn").click(function(){
            var flag = true ;
            if(flag){
                $(".addbtn").html("<button class='addbtn'><i class='fas fa-times-circle'></i></button>");
                $(".add").animate({height:'500'});
                flag = false ;
            } else {
                $(".addbtn").html("<button class='addbtn'><i class='fas fa-plus-circle'></i></button>");
                $(".add").height(60);
                    flag = true ;
                }
        });
    });

但它不会改变之前的 html 类“addbtn”,它会添加另一个“addbtn”类作为之前类的子类。

我怎样才能只更改当前的 html 代码,而不添加新类?

最佳答案

你把这个复杂化了一点。您只需使用 toggleClass() 切换相关类。您不需要重新编写元素的 HTML,也不需要使用任何全局标志。试试这个:

$(".addbtn").click(function() {
  var $el = $(this).find('i').toggleClass('fa-plus-circle fa-times-circle');
  $(".add").animate({ 
    height: $el.hasClass('fa-times-circle') ? 500 : 60
  });
});

关于javascript - 使用 jquery 更改单击按钮的 html 代码时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56532847/

相关文章:

javascript - 如何在固定高度和固定宽度的 div 中包含 fullscreen.js 幻灯片

javascript - 检查 jQuery 中的增加-减少事件输入类型编号

javascript - 在 React.js 中创建组件 : is "React.createClass" still usable?

javascript - IBM Worklight 6.1 - 如果处于脱机模式,则不会调用 NativePage.show 回调

php - 在表中显示客户端临时数据

jquery - 使用 jQuery 更改 div 内容

php - 在 YII CGridView 中隐藏列

javascript - 页脚贴在底部

javascript - RowFilter 不匹配时显示消息

javascript - 如何检查多边形是否包含 Point Sequelize 和 postgres