Bài 05: jQuery Attributes - hasClass()
1. Cú pháp hàm hasClass():
$('selector').hasClass(className)
Kết quả:
- TRUE nếu đối tượng có class truyền vào
- FALSE nếu đối tượng không có class truyền vào
2. Ví dụ sử dụng hàm hasClass()
Ví dụ 1: Giả sử tôi có một thẻ DIV như sau:
<div id="id-hasclass" class="demo testing"></div>
Bài viết này được đăng tại [free tuts .net]
alert($('#id-hasclass').hasClass('demo'));
=> TRUE vì thẻ div có class demoalert($('#id-hasclass').hasClass('testing'));
=> TRUE vì thẻ div có class testingalert($('#id-hasclass').hasClass('testing'));
=> TRUE vì thẻ div có class testing
Ví dụ 2: Cho 2 thẻ div với nội dung như sau:
<div class="yellow"></div> <div class="red"></div>
Full code HTML
<!DOCTYPE html> <html> <head> <title>Đổi màu nhé</title> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <script language="javascript" src="http://code.jquery.com/jquery-2.0.0.min.js"></script> <style type="text/css"> .yellow{ background: yellow; height: 200px; } .red{ background: red; height: 200px; } </style> </head> <body> <div class="yellow"></div> <div class="red"></div> <input type="button" value="Đảo Ngược Màu" id="button-dao-nguoc"/> </body> </html>
Hãy tạo một button, thêm sự kiện khi click vào button thì lập tức đổi màu của 2 thẻ div đó
Hướng giải:
Để giải bài này ta sẽ sử dụng một số hàm liên quan trong jquery đó là ham addClass và removeClass . Ta sẽ sử dụng sự kiện click trong jquery để thiết lập cho button có id là button-dao-nguoc.
Bài giải: Xem demo
$(document).ready(function(){ // Nếu click vào button đảo ngược $('#button-dao-nguoc').click(function(){ // Lấy đối tượng cần thực thi var object = $('div'); // Lặp qua từng đối tượng object for (var i = 0; i < object.length; i++){ // Thực hiện đổi màu // nếu có class red thì đổi thành yello // nếu có calss yellow thì đổi thành red if ($(object[i]).hasClass('red')){ $(object[i]).removeClass('red').addClass('yellow'); } else if ($(object[i]).hasClass('yellow')){ $(object[i]).removeClass('yellow').addClass('red'); } } }); });
Ở bài giải này các bạn lưu ý rằng ví chúng ta có 2 thẻ div nên tôi đã phải dùng vòng lặp để lặp qua từng đối tượng. Nếu bạn không dùng vòng lặp thì mặc nhiên nó chỉ có tác dụng với thẻ div đầu tiên.
3. Lời kết
Bài này chỉ đưa ra những ví dụ nhỏ về cách sử dụng jquery hasClass để kiểm tra đối tượng HTML có class nào đó không? Hy vọng giúp được một số bạn mới tìm hiểu jquery.