Các css
phương pháp JQuery, khi đưa ra chỉ một tham số, sẽ trả về giá trị cho cho paramenter. Bạn có thể thử này:
var color = $('.box').css('background-color');
if (color == 'rgb(0, 0, 255)' || color == 'blue') // =='blue' <- IE hack
alert("it's blue!\nColor detected: " + color);
Các mẫu ở trên sẽ chỉ làm việc cho các phần tử đầu tiên trong bộ chọn JQuery, do đó bạn nên sử dụng phương pháp .each
JQuery để lặp qua toàn bộ chọn nếu bạn có nhiều hơn một phần tử trong nó .
Xin lưu ý rằng phương thức JQuery .css
trả về kết hợp RGB trong hầu hết các trình duyệt (ngoại trừ IE), do đó kiểm tra nó với chuỗi như blue
sẽ không đủ cho các trình duyệt không phải IE. Bạn có thể kiểm tra điều đó trong JQuery API site và my fiddle.
Và đây là với đúng .each
lặp:
$('.box').each(function(i){
var color = $(this).css('background-color');
if (color == 'rgb(0, 0, 255)' || color == 'blue') // =='blue' <- IE hack
alert("div " + i + " is blue!\nColor detected: " + color);
});
JSFiddle
Edit: hơn một năm và một nửa sau, tôi cảm thấy như câu trả lời này xứng đáng một bản cập nhật .
Đối với hầu hết các trường hợp sử dụng, tôi khuyên bạn nên sử dụng một lớp CSS:
.blue {
color: blue;
}
Điều này cho phép việc sử dụng các addClass()
, removeClass()
, toggleClass()
phương pháp để thao tác, cũng như hasClass()
để kiểm tra:
if ($('#myElem').hasClass('blue')) {
//it has the .blue class!
}
Công cụ này hoạt động liên tục trong tất cả các trình duyệt mà không cần hack và cộng thêm bạn sẽ tách mối quan tâm tốt hơn - nghĩa là nếu kiểu dáng của bạn thay đổi, hãy nói .blue { color: lightblue; }
, JS sẽ tiếp tục làm việc mà không cần sửa đổi. Lưu ý: tất nhiên, cách tiếp cận này không phù hợp với một vài trường hợp hiếm hoi khi giá trị màu được tạo động (ví dụ: sử dụng Math.random()
hoặc chọn giá trị màu khỏi pixel canvas), trong những trường hợp hiếm hoi này bạn vẫn có thể sử dụng giải pháp đầu tiên trong câu trả lời này.
Hoặc như thế này '$ ($ ('. Box') [3]). Css()' để chọn phần tử * thứ tư * phù hợp. –
Ồ tôi hiểu rồi. Điều đó sẽ làm việc để chọn một phần tử duy nhất. –
Đã thêm ghi chú RGB, lặp lại '.each' và ví dụ. –