javascript - 简单的 jQuery 元素 html 更改

标签 javascript jquery html

我有这个代码:

$(document).ready(function() {
    $('#mobile-nav').click(function() {
        if($(this).html('<i class="fa fa-bars"></i>')){
            $(this).html('<i class="fa fa-times"></i>');
        } else {
            $(this).html('<i class="fa fa-bars"></i>');
        }

    });

});

当你第一次点击它时,html内容会按照我的预期发生变化,但是当我再次点击<i class="fa fa-bars"></i>时不再设置。

我做错了什么?

------------------------------------------------------------更新--------------------------------------------------

阅读这些有用的答案并将它们合并为一个后,答案应该是这样的:

$(document).ready(function() {
    $('#mobile-nav').click(function() {
      if ($('i', this).hasClass("fa-bars")) {
          $('i', this).removeClass("fa-bars").addClass("fa-times");
      } else {
          $('i', this).removeClass("fa-times").addClass("fa-bars");
      }
    });    
});

最佳答案

不要这样检查,检查类名。更不用说您正在设置 HTML,而不是检查它。

if ($(this).hasClass("fa-bars")) {
    $(this).removeClass("fa-bars").addClass("fa-times");
} else {
    $(this).removeClass("fa-times").addClass("fa-bars");
}

关于javascript - 简单的 jQuery 元素 html 更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21765316/

相关文章:

javascript - onLoad 弹出窗口(仅在第一次访问时加载)

javascript - 如何在 angularjs 中加载时从 div 调用函数

html - 将搜索栏移动到导航栏的右侧

javascript - 在 Kendo 编辑器工具中使用 jquery 中的类创建按钮单击事件

javascript - 通过 JavaScript 设置 HTML 表单图像输入的 'capture' 属性

javascript - 标题来源不允许

javascript - jquery 窗口加载并调整大小未运行

javascript - 如何在新创建的 ajax 内容上选择元素中的文本(类似于用鼠标突出显示)?

html - CSS:图像不以显示为中心: block 边距:0 自动?

Javascript 函数在 Chrome 中不起作用?