Câu hỏi Làm cách nào để bỏ đặt thuộc tính CSS của phần tử bằng jQuery?


Nếu tôi đặt giá trị CSS trên một phần tử cụ thể bằng:

$('#element').css('background-color', '#ccc');

Tôi muốn có thể bỏ đặt giá trị cụ thể theo phần tử đó và sử dụng giá trị xếp tầng, dọc theo các dòng:

$('#element').css('background-color', null);

Nhưng cú pháp đó dường như không hoạt động - liệu điều này có thể sử dụng cú pháp khác không?

Cảm ơn trước!

Chỉnh sửa: Giá trị không được kế thừa từ phần tử gốc - giá trị ban đầu đến từ bộ chọn cấp phần tử. Xin lỗi vì bất kỳ sự nhầm lẫn nào!


76
2018-01-29 08:41


gốc




Các câu trả lời:


Từ 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', '') - loại bỏ thuộc tính đó khỏi một phần tử nếu nó đã được áp dụng trực tiếp, cho dù thuộc tính kiểu HTML, thông qua jQuery .css() phương pháp hoặc thông qua thao tác DOM trực tiếp của style bất động sản. Tuy nhiên, nó không loại bỏ một kiểu đã được áp dụng với một quy tắc CSS trong một biểu định kiểu hoặc <style> thành phần.


109
2018-02-24 00:54



Tôi đã xem qua câu hỏi này khi tôi gặp vấn đề này. Trong trường hợp của tôi, tôi đã thiết lập thuộc tính css trong một style thuộc tính trên thẻ, vì vậy phương pháp này không hoạt động. Áp dụng phong cách với .css() phương pháp thay vì trong thẻ cho phép tôi xóa nó sau này. - Glenn Moss


Tôi nghĩ bạn cũng có thể làm:

$('#element').css('background-color', '');

Đó là những gì tôi đã từng làm một thời gian dài trước đây cho display thuộc tính trong plain-old-javascript để hiển thị / ẩn một trường.


11
2018-01-29 09:27





Trên thực tế, cú pháp tôi nghĩ là không chính xác (với null) dường như đang hoạt động - bộ chọn của tôi chỉ được tạo hình không đúng cách, và do đó không có yếu tố nào. D'oh!


4
2018-01-29 09:18



Kể từ jquery 1.4.3 css(..., null) không hoạt động và css(..., '') nên được sử dụng thay thế - bugs.jquery.com/ticket/7233 - Tim Sylvester
@cdleary Bạn nên sửa câu trả lời hoặc chọn câu trả lời đúng. - Niels Abildgaard


Thử cái này:

$('#element').css('background-color', 'inherit');

3
2018-01-29 08:51



Thừa kế là tiếc là không phải là hành vi tôi đang tìm kiếm: "tài sản có giá trị tính toán giống như tài sản cho cha mẹ của phần tử" từ w3.org/TR/CSS2/cascade.html - cdleary


Đối với những gì nó có giá trị này xuất hiện không làm việc trong IE 8 cho 'bộ lọc', tôi đã phải sử dụng này (trong fadeIn gọi lại):

$(this).attr('style', $(this).attr('style').replace(/\bfilter:\s*;*/, ''));

Rõ ràng, tôi đã cần phải loại bỏ một khai báo lọc nội tuyến rỗng để CSS có thể có hiệu lực; có các quy tắc nội tuyến khác nên tôi không thể xóa thuộc tính kiểu.


0
2017-11-05 15:59