Trong bài viết này, bạn sẽ tìm hiểu 3 cách khác nhau để JavaScript thêm lớp vào phần tử HTML. Bạn sẽ thấy các biến thể khác nhau như thêm nhiều lớp vào phần tử, thêm lớp vào phần thân, tạo phần tử mới, v.v.
Bạn có thể trực tiếp thêm một lớp vào phần tử dưới dạng thuộc tính HTML [Ví dụ:.
element.classList.add['class_name']
0] hoặc sử dụng JavaScript để thêm một lớp vào phần tử [mà chúng ta sẽ thấy trong phần này]. Dưới đây là một ví dụ về việc thêm một lớp vào phần tử HTML bằng cách sử dụng javascript
- JS
- CSS
// selecting the element
let button = document.querySelector['#button'];
// Add class to the element
button.addEventListener['click', function[] {
button.classList.add['.main-btn'];
}];
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
Đầu ra . Nhấp vào nút bên dưới và javascript sẽ thêm một lớp vào nút.
Bấm vào nút bên dưới
Nhấp vào tôi để thêm lớpĐây là một cách năng động để thêm một lớp vào một phần tử HTML. Hãy xem cách javascript thêm lớp động vào phần tử HTML
- Javascript thêm lớp
- Sử dụng thuộc tính classList
- Thêm lớp vào một sự kiện
- Thêm nhiều lớp
- Sử dụng thuộc tính className
- Thêm nhiều lớp với thuộc tính className
- Sử dụng phương thức setAttribute
- Thêm nhiều lớp bằng setAttribute
- Sử dụng thuộc tính classList
- Thêm cơ thể lớp
- Thêm div lớp
- Thêm lớp vào một phần tử mới
- Thêm lớp javascript khi di chuột
Mục lục
Thêm lớp javascript - 3 cách
Trong khi làm việc ở giao diện người dùng, chúng ta thường cần thêm động CSS vào phần tử HTML. Để thêm CSS động vào một phần tử, hãy thêm một lớp vào phần tử
Có 3 cách để thêm lớp CSS bằng javascript
- Sử dụng classList Thuộc tính
- Sử dụng thuộc tính className property
- Sử dụng phương pháp setAttribute method
1. Sử dụng thuộc tính classList property
Mọi phần tử HTML đều có thuộc tính classList . Thuộc tính này có nhiều phương thức khác nhau. Một trong những phương thức là phương thức add[] . Phương thức này được sử dụng để thêm một lớp vào phần tử.
element.classList.add['class_name']
Để thêm một lớp CSS bằng javascript, hãy làm theo các bước bên dưới
- Chọn phần tử HTML
- Áp dụng thuộc tính classList cho nó.
- Sử dụng phương thức add[] để thêm lớp và chuyển tên lớp làm đối số.
Thí dụ
Javascript adds a CSS class to this paragraph.
// Get the element with id="id1"
const element = document.getElementById["id1"];
// Add a class [quote] to the element
element.classList.add["quote"];
▶ Hãy thử
Thêm lớp javascript vào một sự kiện
Nói chung, chúng tôi thêm các lớp bằng javascript khi có sự kiện xảy ra. Ví dụ: khi người dùng nhấp vào nút, khi người dùng cuộn trang xuống, v.v.
Hãy xem cách thêm lớp vào phần tử HTML khi người dùng nhấp vào nút .
Thí dụ
Add class to above paragraph
// add class on click javascript
function addClass[] {
// Get the paragraph element
const element = document.getElementById["id1"];
// Add a class to the paragraph
element.classList.add["beautify"];
}
▶ Hãy thử
đầu ra
Trong đoạn mã trên, trong trường hợp nhấp vào nút, một chức năng được thực thi để thêm một lớp vào thành phần đoạn văn
Thêm vào Nhiều lớp javascript
Bạn cũng có thể thêm nhiều lớp cùng một lúc bằng cách sử dụng phương thức add[] .
Để thêm nhiều lớp cùng một lúc, hãy chuyển nhiều lớp cách nhau bằng dấu phẩy
- JS
- HTML
- CSS
function addClass[] {
const element = document.getElementById["id1"];
// passing multiple classes separated by comma
element.classList.add["color", "border", "others"];
}
Add classes to above paragraph
________số 8
2. Sử dụng thuộc tính className property
Thuộc tính className của một phần tử có thể được sử dụng để lấy và đặt các lớp gắn liền với phần tử đó.
Thuộc tính className trả về các lớp của phần tử ở dạng chuỗi. Nếu phần tử có một lớp tên là class1 thì nó trả về "class1", nếu phần tử có 2 lớp class1< . and class2 then it returns "class1 class2", and so on.
Paragraph 1
Paragtaph 2
const element1 = document.getElementById["id1"];
const element2 = document.getElementById["id2"];
console.log[element1.className]; // "box"
console.log[element2.className]; // "big red box"
Thuộc tính className có thể đọc cũng như ghi các lớp của phần tử.
Để thêm một lớp mới vào phần tử, hãy gán lớp mới cho thuộc tính className của phần tử dưới dạng một chuỗi.
Lưu ý . Việc gán tên lớp trực tiếp cho thuộc tính className sẽ ghi đè lên các lớp hiện có.
Đây là một ví dụ để hiển thị điều này
Thí dụ
// selecting the element
let button = document.querySelector['#button'];
// Add class to the element
button.addEventListener['click', function[] {
button.classList.add['.main-btn'];
}];
0▶ Hãy thử
đầu ra
Để thêm các lớp mới mà không thay thế các lớp cũ hơn, hãy sử dụng toán tử += để chỉ định lớp mới. Nó sẽ giữ các lớp cũ hơn và thêm những lớp mới.
Thí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
0▶ Hãy thử
Có thể nhầm . Thêm khoảng trắng trước tên lớp khi sử dụng
element.classList.add['class_name']
1 để thêm lớp. Bởi vì nếu phần tử có lớp cũ "class1" và bạn thêm lớp mới "class 2" thì nó sẽ trở thành "class1 class2", điều này vô nghĩa đối với trình duyệt. Thêm nhiều lớp bằng className
Để thêm nhiều lớp, hãy gán các tên lớp mới được phân tách bằng dấu cách cho thuộc tính className của phần tử.
Thí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
1▶ Hãy thử
Ở phía trước, tìm hiểu thêm
- JavaScript Loại bỏ lớp
- Chuyển đổi lớp JavaScript
- JavaScript Nhận phần tử theo lớp
3. Sử dụng setAttribute Phương pháp
setAttribute là một phương thức có thể được sử dụng để thêm một thuộc tính mới vào một phần tử.
Một lớp cũng là một thuộc tính phần tử. Vì vậy, chúng ta có thể sử dụng phương thức setAttribute để thêm một lớp.
Phương thức setAttribute có thể được sử dụng để thêm một thuộc tính mới vào một phần tử. Phương thức nhận 2 tham số là tên của thuộc tính và giá trị của thuộc tính.
- JS
- CSS
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
2.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
3▶ Hãy thử
Thêm nhiều lớp bằng setAttribute
Để thêm nhiều lớp vào phần tử, hãy chuyển nhiều tên lớp được phân tách bằng dấu cách cho phương thức setAttribute .
- JS
- CSS
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
4.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
5▶ Hãy thử
JavaScript thêm lớp vào nội dung
Để thêm một lớp vào phần thân của trang web, hãy chọn phần thân của
element.classList.add['class_name']
2 và sử dụng một trong 2 phương pháp được đề cập để thêm các lớp CSSThí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
6▶ Hãy thử
JavaScript thêm lớp vào div
Như đã đề cập ở trên, bạn có thể sử dụng bất kỳ phương thức nào trong 2 phương thức trên để thêm lớp vào phần tử div bằng javascript
- Bước 1 . Chọn phần tử
- Bước 2 . Sử dụng thuộc tính className hoặc classList property
Thí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
7▶ Hãy thử
JavaScript thêm lớp vào phần tử mới
Hãy tưởng tượng một tình huống mà bạn muốn thêm một thành phần mới vào trang web, chẳng hạn như tạo một mục danh sách trong ứng dụng danh sách Công việc. Bạn có thể sử dụng thuộc tính classList để thêm một lớp vào phần tử mới.
Để thêm nhiều lớp, hãy chuyển các tên lớp được phân tách bằng dấu cách vào classList. phương thức add[] .
Thí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
8▶ Hãy thử
Thêm một lớp trên di chuột javascript
Để thêm một lớp vào một phần tử khi di chuột, hãy sử dụng sự kiện
element.classList.add['class_name']
3. Đính kèm sự kiện element.classList.add['class_name']
3 vào trình xử lý sự kiện kích hoạt phần tử để thêm lớpThí dụ
.main-btn {
border: none;
color: white;
background: blue;
padding: 10px 30px;
border-radius: 5px;
}
@keyframes shake {
0% { transform: translateX[0] }
25% { transform: translateX[-5px] }
50% { transform: translateX[0] }
75% { transform: translateX[5px] }
100% { transform: translateX[0] }
}
.main-btn:hover {
animation: shake 3 0.2s ease-in-out;
}
9▶ Hãy thử
Sự kết luận
Tổng hợp các cách trên để thêm class vào phần tử trong JavaScript
- Phương pháp 1 . Sử dụng classList. add[] Phương thức
- Phương pháp 2 . Sử dụng thuộc tính className property
- Phương pháp 3 . Sử dụng phương thức setAttribute[] method
Bạn có thể thêm một hoặc nhiều lớp vào một phần tử bằng bất kỳ phương pháp nào ở trên
Nếu bạn cần hỗ trợ với dự án JavaScript của mình, vui lòng liên hệ với các chuyên gia để nhận trợ giúp trực tuyến về bài tập JavaScript