Cách xóa thuộc tính css trong jQuery


197
if(prev_clicked)
{   
    $("#accordion li a.category").css('background-image', 'url("img/off_all_channel.png")');                    
    $("#accordion li a.comment").css('background-image', 'url("img/on_all_online.png")');                   
    $(".icha0").removeProperty("background-color");
    $(".icha0").removeProperty("opacity");
}
else
{   
   $(".icha0").css("background-color","#D5D5D2");
   $(".icha0").css("opacity","0.70");
}

Tôi đang cố gắng loại bỏ hai thuộc tính css mà tôi đã thêm nhưng có vẻ như không hoạt động. Mặc dù vậy?


1
Ngoài ra, hãy thử Google trước khi đăng ở đây. Tôi không nghi ngờ gì về kết quả đầu tiên cho tiêu đề chính xác mà bạn đã đăng ở đây sẽ trả về một kết quả chấp nhận được. Tôi không biết bạn đến .removeProperty()từ đâu.
Christian

1
@Christian Varga, thật buồn cười, bây giờ anh ấy đã đăng câu hỏi này, đó là kết quả đầu tiên của google. Kết quả thứ hai là một câu trả lời tràn ngăn xếp chính xác. Thứ ba là "removeProp ()" và thứ tư là "removeAttr ()", cả hai đều sai.
rocketsarefast

Câu trả lời:


369

Bạn có thể loại bỏ chúng bằng cách:

$(".icha0").css({ 'background-color' : '', 'opacity' : '' });

26
Vẫn còn quá muộn để trả lời nhưng tôi nghĩ điều này rất quan trọng. Bạn phải nhớ rằng điều này sẽ chỉ xóa các thuộc tính của phần tử được xác định trong thuộc tính "style". Điều này sẽ KHÔNG có hiệu lực nếu chúng được gán cho một lớp hoặc tương tự.
Jose Carlos

15
Nếu bạn cần xóa thuộc tính được đặt qua một lớp, bạn có thể đặt thành 'inital' thay vì ''
James Brierley

82

Bạn cũng có thể sử dụng .css()để xóa thuộc tính css, như thế này:

$(".icha0").css("background-color","");
$(".icha0").css("opacity","");

Như đã đề cập trong tài liệu jquery:

Đặt giá trị của thuộc tính kiểu thành một chuỗi trống - ví dụ: $ ('# mydiv'). Css ('color', '') - xóa thuộc tính đó khỏi một thành phần nếu nó đã được áp dụng trực tiếp,


16
Từ jqeury css: "Tuy nhiên, không xóa một kiểu đã được áp dụng với quy tắc CSS trong biểu định kiểu hoặc phần tử <style>"
eggmatters 28/1/2015

36

Để xóa thuộc tính CSS nội tuyến, hãy sử dụng:

$('.className').css({propertyName: ''});

Để xóa toàn bộ kiểu nội tuyến của một phần tử, hãy sử dụng:

$('.className').removeAttr('style');

Tôi cũng đã tìm thấy đề xuất này để xóa thuộc tính CSS khỏi các kiểu (tệp riêng) sử dụng:

$ ('. className'). style.propertyName = '';

NHƯNG tôi không thể làm cho nó hoạt động được, vì vậy tôi sẽ đặt nó ở đây chỉ là FYI.


4
$ ('. className'). style.propertyName = ''; phải là $ ('. className') [0] .style.propertyName = ''; - nhưng thật vô lý
SuperNova

20

Hoặc bạn có thể đặt các thuộc tính trở lại trống:

$(".icha0").css("background-color","");

Hoặc bạn có thể thay đổi mã để sử dụng các lớp được xác định trong tệp CSS:

$(".icha0").addClass('properties'); 
$(".icha0").removeClass('properties');

Đã giúp loại bỏ các cạnh lởm chởm do quan điểm 3d lồng nhau. Tôi đã thất vọng khi cố gắng loại bỏ một trong những quan điểm để khắc phục vấn đề chống bí danh, bài đăng này đã cứu tôi! Cảm ơn bạn!
Richard Yan

3

Chúng tôi có hai cách, hoặc là bạn có thể loại bỏ trực tiếp lớp kiểu CSS được áp dụng được áp dụng cho phần tử DOM hoặc loại bỏ kiểu CSS được áp dụng khỏi phần tử

//Remove the class associated with element

$('#ID').removeClass("cssClass");

//Remove the CSS style from DOM element

$('p').css({"color":""});

3
Không có gì mới trong câu trả lời này, thật vô nghĩa khi lặp lại các câu trả lời khác.
Shadow Wizard là Ear For You

3

Tôi đã gặp vấn đề này nhưng tôi chưa thấy giải pháp nào thỏa mãn OP. Hầu hết các giải pháp đề nghị loại bỏ toàn bộ thuộc tính style không xứng đáng.

Tôi đã sử dụng phương pháp prop của jQuery .

var styleObject = $('my-selector').prop('style'); 

styleObject.removeProperty('background-color');

2

Thay thế ít hơn tùy chọn lý tưởng, nhưng có thể giải quyết các vấn đề khác nhau. Thêm một lớp mới vào phần tử có giá trị kế thừa :

css

.clearCSS {
    background-color: inherit !important;
}

jquery

$(".icha0").addClass('clearCSS'); 

2

Đây thực sự là một bản sao dán từ câu trả lời này và tôi sử dụng nó để xóa kiểu CSS mà tôi đã thêm với jQuery trong một hàm được thực hiện trước đó.

Để xóa thuộc tính CSS nội tuyến, hãy sử dụng:

$('.className').css({propertyName: ''});   

Để xóa toàn bộ kiểu nội tuyến của một phần tử, hãy sử dụng:

$('.className').removeAttr('style');

HOẶC theo ID:

$('#idName').removeAttr('style');

1

Để xóa tất cả thuộc tính CSS trong JQuery, có thể sử dụng đoạn mã sau:

    $(".selector").removeClass().removeAttr('style');

Cảm ơn.


1

nếu bạn cần xóa và không cập nhật một thuộc tính cụ thể, bạn chỉ cần sử dụng removeProp và không gỡ bỏ :

$(".icha0").removeProp("background-color");
$(".icha0").removeProp("opacity");
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.