2012-05-29 60 views
5

下面是函數:爲什麼不會.getPropertyValue()返回「borderRadius」屬性的值?

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

我沒有得到任何價值,但父節點的CSS是:

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

什麼會我必須要改變返回「的3px」?所有的幫助非常感謝;我仍然是JavaScript的新手。

+0

你能檢查這個嗎?警報(articleparent.style.borderRadius); – Sebas

+0

@ Sebas我沒有任何價值。這是否意味着我沒有引用正確的元素? –

+0

如果我對CSS的解釋是正確的,它看起來像div.placeholder得到的不是邊界半徑樣式,它是父div#mainbody ...這可能是爲什麼 – pandavenger

回答

8

對於getPropertyValue(),您使用連字符而不是camelCase。

此作品在Chrome中......

.getPropertyValue('border-radius'); 

但Firefox似乎都需要特定的角落使用此語法...

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

非常感謝。這解決了我的問題。 :) –

+0

這是TIL對我:) – pramodc84

0

的getComputedStyle上不支持IE8下面,修復這種用途:

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")); 
相關問題