2011-11-03 74 views
6

Tất cả các câu trả lời khác mà tôi đã phát hiện chỉ xóa cài đặt thuộc tính chứ không phải thuộc tính hoàn toàn. Tôi đang thay đổi một phần tử từ vị trí tuyệt đối đến cố định. Tôi cần phải loại bỏ các thuộc tính định vị đúng và thay thế nó bằng lề phải để phần tử là vị trí ngay trong DIV cha mẹ của nó. Nếu thuộc tính bên phải không được gỡ bỏ, phần tử sẽ chuyển sang bên phải của màn hình, chứ không phải ở bên phải của DIV như tôi cần nó. Bất cứ ai có thể đưa ra một gợi ý về cách thực hiện điều này?Xóa thuộc tính CSS bằng cách sử dụng Jquery

Trả lời

13

Hãy thử thiết lập nó để giá trị mặc định của nó auto

$(element).css('right', 'auto'); 
+1

PS - spec CSS có thể trả lời câu này cho bạn - http://www.w3.org/TR/CSS21/visuren.html#propdef-right – mrtsherman

+0

này làm việc tuyệt vời! Cảm ơn bạn. – user981053

+1

Tốt hơn giá trị mặc định được mã hóa rõ ràng là một chuỗi trống (như được chứng minh bởi @Derek) cho phép các quy tắc biểu định kiểu khác áp dụng khi thích hợp. – Phrogz

2
$('div').css({'right' : '', 'margin-right' : '100px'}); 

Nếu điều đó không làm việc, hãy thử thiết lập quyền đó là giá trị mặc định của auto

0

Hãy thử thiết lập right-0px và sau đó đặt số margin-right.

$('div').css({'right' : '0px', 'margin-right' : '100px'}); 
0

Bạn có thể thử mã sau

 $.fn.removeCss=function(toDelete) { 

      var props = $(this).attr('style').split(';'); 
      var tmp = -1; 

      for(var p=0; p<props.length; p++) { 
       if(props[p].indexOf(toDelete) !== -1) { 
        tmp=p 
       } 
      } 

      if(tmp !== -1) { 
       props.splice(tmp, 1); 
      } 

      return $(this).attr('style',props.join(';')); 
     } 

example usage: 
$(selector).removeCss('color'); 
1

Theo tôi cách sạch là để loại bỏ bất động sản hoàn toàn từ các yếu tố của CSSStyleDeclaration, thay vì chỉ ghi đè lên nó với một số loại null/zero/default giá trị:

$(".foo").prop("style").removeProperty("right"); 
$(".foo").prop("style").removeProperty("background-color"); 
Các vấn đề liên quan