Dưới đây là một số hàm javascript đơn giản mà bạn có thể sử dụng để thao tác tên lớp trong javascript thuần túy. Phải mất một ít việc làm thêm trong các chức năng này để phù hợp với tên cả lớp chỉ và tránh bất kỳ dấu cách thêm trước/sau classnames:
function removeClass(elem, cls) {
var str = " " + elem.className + " ";
elem.className = str.replace(" " + cls + " ", " ").replace(/^\s+|\s+$/g, "");
}
function addClass(elem, cls) {
elem.className += (" " + cls);
}
function hasClass(elem, cls) {
var str = " " + elem.className + " ";
var testCls = " " + cls + " ";
return(str.indexOf(testCls) != -1) ;
}
function toggleClass(elem, cls) {
if (hasClass(elem, cls)) {
removeClass(elem, cls);
} else {
addClass(elem, cls);
}
}
function toggleBetweenClasses(elem, cls1, cls2) {
if (hasClass(elem, cls1)) {
removeClass(elem, cls1);
addClass(elem, cls2);
} else if (hasClass(elem, cls2)) {
removeClass(elem, cls2);
addClass(elem, cls1);
}
}
Nếu bạn muốn chuyển đổi giữa các black
và normal
lớp mà không ảnh hưởng bất kỳ lớp học khác trên đối tượng quy định, bạn có thể làm điều này: ví dụ
function black(id) {
var obj = document.getElementById(id);
if (obj) {
toggleBetweenClasses(obj, "black", "normal");
}
}
làm việc ở đây: http://jsfiddle.net/jfriend00/eR85c/
Nếu bạn muốn thêm lớp "đen" trừ khi "bình thường" đã hiện diện, bạn có thể làm điều này:
function black(id) {
var obj = document.getElementById(id);
if (obj && !hasClass(obj, "normal")) {
addClass(obj, "black");
}
}
lẽ https://developer.mozilla.org/en-US/docs/DOM/element.classList có thể giúp bạn. Nó giống như jQuery nhưng trong javascript đơn giản, nhưng chỉ hoạt động trên các trình duyệt rất khiêm tốn. – Oriol