javascript - 如何将 jQuery 代码(更改类和文本的单击事件)转换为 JavaScript

标签 javascript jquery

我制作了一个测试网站,我想将其作为副项目来使用,但遇到了问题。我想将 jQuery 代码转换为 JavaScript,这样我就可以将其作为函数调用并编辑和编写 cookie。这是我的代码示例:

$( ".inner-switch" ).on("click", function(){
    if( $( "body" ).hasClass( "dark" )) {
      $( "body" ).removeClass( "dark" );
      $( ".inner-switch" ).text( "OFF" );
    } else {
      $( "body" ).addClass( "dark" );
      $( ".inner-switch" ).text( "ON" );
    }
});

这是我的网站 GitHub:https://github.com/wrssmithjr04/wrssmithjr04.github.io 感谢您的帮助!

最佳答案

您好,我建议使用 id 而不是 class 并使用 document.getElementByIddocument.querySelector 之类的所以:

const darkModeLink = document.getElementById('darkModeLink');

darkModeLink.addEventListener('click',
    () => {    
    const darkModeText = darkModeLink.querySelector('#darkModeText');
    const darkClass = "dark";
    if (document.body.classList.contains(darkClass)) {
      document.body.classList.remove(darkClass);
      darkModeText.innerText = "OFF";       
    } 
    else {
      document.body.classList.add(darkClass);
      darkModeText.innerText = "ON";       
    }
  }
);
body {
    font-family: Arial, Helvetica, 'Lato', sans-serif;
    font-size: 1.125rem;
    display: flex;
    flex-direction: column;
    margin: 0 auto;
    padding: 0 0.9375rem;   
}
small {
    font-style: italic;
}
img {
    max-width: 100%;
    display: block;
    align-self: center;
}
.switch {
    align-self: flex-end;
    color: #e6e6e6;
}
.inner-switch {
    display: inline-block;
    cursor: pointer;
    border: 1px solid #555;
    border-radius: 1.25rem;
    width: 3.125rem;
    text-align: center;
    font-size: 1rem;
    padding: 0.1875rem;
    margin-left: 0.3125rem;
}
.dark,
.dark * {
    background-color: black;
    color: #e6e6e6;
    border-color: #e6e6e6;
}
<a style="float:right" id="darkModeLink" class="switch">   Dark mode:<span class="inner-switch" id="darkModeText">OFF</span></a>

关于javascript - 如何将 jQuery 代码(更改类和文本的单击事件)转换为 JavaScript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58159047/

相关文章:

javascript - 对象数组中属性值的递归数组

javascript - Firefox + 一些 javascript = 带有无限旋转轮的选项卡,永远不会完成加载(Chrome 还可以!)。为什么?

javascript - 如何防止方法调用,当它不存在时

javascript - jQuery 可拖动/可内容编辑代码未正确响应

javascript - angularjs ng-重复来自不同 i18n 文件的下拉值

javascript - PHP 删除 HTML 标签后的所有内容

javascript - 在 javascript 中下载文件在 Chrome 中不起作用

javascript - 使用 jquery 显示简单的 carousal 描述

javascript - 想要使用 jquery 单击特定按钮时禁用我的复选框(变灰)

javascript - 从 .getJson 多个 .each 循环存储多个对象