โพสต์นี้จะกล่าวถึงวิธีการเปลี่ยนคลาสขององค์ประกอบโดยใช้ JavaScript และ jQuery
1. แทนที่คลาสด้วยคลาสอื่น
หากต้องการแทนที่คลาสด้วยคลาสอื่น คุณสามารถลบคลาสเก่าโดยใช้เมธอด .removeClass() ของ jQuery แล้วเพิ่มคลาสใหม่โดยใช้เมธอด .addClass() ของ jQuery
function replaceClass(id, oldClass, newClass) {
var elem = $(`#${id}`);
if (elem.hasClass(oldClass)) {
elem.removeClass(oldClass);
}
elem.addClass(newClass);
}
$(document).ready(function() {
$("#darkmode").click(function() {
replaceClass("container", "light", "dark");
});
$("#lightmode").click(function() {
replaceClass("container", "dark", "light");
});
});
#### CSS ####
.light {
background-color: #ffffff;
}
.dark {
background-color: #243447;
}
#### HTML ####
<div class="light" id="container"></div>
<button id="darkmode">Dark Mode</button>
<button id="lightmode">Light Mode</button>
ใน JavaScript ธรรมดา คุณสามารถใช้เมธอด Element.classList.remove() และ Element.classList.add() เพื่อลบและเพิ่มคลาสตามลำดับ
function replaceClass(id, oldClass, newClass) {
var elem = document.getElementById(id);
elem.classList.remove(oldClass);
elem.classList.add(newClass);
}
document.getElementById("darkmode").onclick = function() {
replaceClass("container", "light", "dark");
}
document.getElementById("lightmode").onclick = function() {
replaceClass("container", "dark", "light");
}
2. แทนที่คลาสทั้งหมดด้วยคลาสใหม่อย่างน้อยหนึ่งคลาส
หากต้องการแทนที่คลาสที่มีอยู่ทั้งหมดด้วยคลาสใหม่หนึ่งคลาสขึ้นไป คุณเพียงแค่แทนที่เนื้อหาของแอตทริบิวต์ของคลาสด้วยคลาสใหม่ นี่คือตัวอย่างใน jQuery ที่สาธิตโดยใช้เมธอด .attr()
$(document).ready(function() {
$("#darkmode").click(function() {
$("#container").attr("class", "dark");
});
$("#lightmode").click(function() {
$("#container").attr("class", "light");
});
});
ใน JavaScript ธรรมดา เราสามารถทำได้ด้วยแอตทริบิวต์ className
document.getElementById("darkmode").onclick = function() {
document.getElementById("container").className = "dark";
}
document.getElementById("lightmode").onclick = function() {
document.getElementById("container").className = "light";
}
3. สลับคลาส
คุณสามารถใช้คุณลักษณะการสลับใน JavaScript ซึ่งจะสลับระหว่างสองคลาส นี่คือตัวอย่างการทำงาน:
document.getElementById("mode").onclick = function() {
if (this.innerText === "Dark Mode") {
this.innerText = "Light Mode";
}
else {
this.innerText = "Dark Mode";
}
document.getElementById("container").classList.toggle("dark");
}
นั่นคือทั้งหมดที่เกี่ยวกับการเปลี่ยนคลาสขององค์ประกอบโดยใช้ JavaScript และ jQuery
{fullWidth}