我制作了一个测试网站,我想将其作为副项目来使用,但遇到了问题。我想将 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.getElementById
和 document.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/