2010-02-24 39 views
9

Một lớp học jQuery CSS bộ như sau:Làm thế nào để ghi đè lên một lớp sử dụng jquery

.newwidget { border: 1px solid #5a9ee9; background: #5a9ee9 url(t6.gif) 50% 50% repeat-x; color: #ffffff; font-weight: bold; text-transform: uppercase; padding:3px 3px 3px 10px; font-size:10px} 

Làm thế nào lớp này có thể được ghi đè và một lớp học mới được bổ sung để tôi có thể đưa phong cách khác nhau trong đó? Có lẽ tôi phải loại bỏ trước khi lớp học trước khi thêm chúng. Làm thế nào được thực hiện?

Cảm ơn

+0

Bạn đang cố xác định lại newwidget sao cho tất cả các phần tử có lớp đó có kiểu mới? Hay bạn đang cố gắng thay đổi lớp của một phần tử hiện có? –

+1

Chỉ để bạn biết, trong khi loại bỏ các lớp học cũ là một lựa chọn, nó không phải là bắt buộc. Nếu có những kiểu dáng cũ bạn muốn sử dụng, chỉ cần sử dụng 'addClass()', cái này sẽ 'nâng cao' phần tử với các kiểu trong lớp mới. Nếu không, hãy sử dụng các giải pháp được đưa ra dưới đây. – user113716

+0

Cảm ơn .............................. – Hulk

Trả lời

15

Sử dụng bộ chọn lớp với addClass và removeClass.

$('.newwidget').removeClass('newwidget').addClass('newerwidget'); 
4

Bạn có thể để remove lớp cũ và add mới:

$myJQObject.removeClass('newwidget').addClass('newclass'); 
6

jQuery định nghĩa addClass()removeClass() chỉ cho mục đích này:

$("#ElementId").removeClass('oldClassName').addClass('newClassName'); 

Hai chức năng làm rõ ràng . Chuỗi chúng như thế này để thay đổi tất cả các lớp trong một hành động.

Nếu bạn muốn thay đổi tất cả các yếu tố từ 'oldClass' thành 'newClass', bạn có thể sử dụng một chọn như thế này:

$(".oldClassName").removeClass('oldClassName').addClass('newClassName'); 
+0

Cảm ơn bạn đã giải thích – Hulk

2
$(this).removeClass('oldClass').addClass('newClass'); 
2

Tôi nghĩ rằng nó đáng chú ý là bạn có thể loại bỏ tất cả các lớp học bằng cách rời khỏi tham số từ removeClass():

$('.newwidget').removeClass().addClass('newerwidget'); 
1

Nếu bạn đang tìm kiếm để thay thế hoàn toàn các lớp đang tồn tại trên một elemen t, bạn có thể sử dụng phương thức .attr().

$('#elementId').attr('class', 'newClassName'); 

Mọi lớp học trên elementId sẽ được thay thế.

Các vấn đề liên quan