2012-05-29 34 views
5

Dưới đây là các chức năng:Tại sao không .getPropertyValue() trả về một giá trị cho thuộc tính "borderRadius"?

function lastmenuborder() { 
    var articleparent = document.getElementById('article').parentNode; 
    var articlestyle = window.getComputedStyle(articleparent,null).getPropertyValue('borderRadius'); 
    alert (articlestyle); 
} 

tôi nhận được không có giá trị, nhưng các css cho node cha là:

div#mainbody div.placeholder { 
    border-radius: 3px; 
} 

Những gì tôi sẽ phải thay đổi để trở về "3px"? Tất cả sự trợ giúp được đánh giá cao; Tôi vẫn là một người mới ở JavaScript.

+0

bạn có thể kiểm tra điều này xin vui lòng? alert (articleparent.style.borderRadius); – Sebas

+0

@Sebas Tôi không nhận được giá trị nào. Điều này có nghĩa là tôi đã không tham chiếu đúng yếu tố? –

+0

Nếu diễn giải của tôi về CSS là chính xác, có vẻ như div.placeholder đang nhận kiểu dáng bán kính đường viền không, đó là div cha mẹ # mainbody ... đây có thể là lý do tại sao – pandavenger

Trả lời

8

Đối với getPropertyValue(), bạn sử dụng dấu gạch ngang thay vì camelCase.

này hoạt động trong Chrome ...

.getPropertyValue('border-radius'); 

Nhưng Firefox dường như đòi hỏi góc cụ thể sử dụng cú pháp này ...

.getPropertyValue('border-top-left-radius'); 
+0

Cảm ơn bạn rất nhiều. Điều này đã giải quyết được truy vấn của tôi. :) –

+0

Đây là TIL cho tôi :) – pramodc84

0

getComputedStyle không được hỗ trợ trên IE8 dưới đây, để sửa chữa sử dụng này:

if (!window.getComputedStyle) { 
     window.getComputedStyle = function(el, pseudo) { 
      this.el = el; 
       this.getPropertyValue = function(prop) { 
       var re = /(\-([a-z]){1})/g; 
       if (prop == 'float') prop = 'styleFloat'; 
       if (re.test(prop)) { 
        prop = prop.replace(re, function() { 
         return arguments[2].toUpperCase(); 
        }); 
       } 
       return el.currentStyle[prop] ? el.currentStyle[prop] : null; 
      } 
      return this; 
     } 
    } 

var elem = window.getComputedStyle(document.getElementById('test'), ""); 
alert(elem.getPropertyValue("borderRadius")); 
Các vấn đề liên quan