2014-10-28 93 views
0

是否有轉換轉換CSS規則JavaScript屬性

"text-align" 
"-webkit-transform" 
"position" 
"background-image" 

"textAlign" 
"webkitTransform" 
"position" 
"backgroundImage" 

與香草的JavaScript(jQuery的沒有,ECT)的快捷方式或預定義的JavaScript方法?

+0

雖然中我沒有意識到這樣做的方法,它應該是一個相當簡單的工作與正則表達式替換如果規則假定只是「刪除初始連字符如果存在,並刪除隨後的連字符和大寫以下字母「 – 2014-10-28 17:25:59

回答

0

狩獵周圍後,我發現,我正在處理的變量是CSSStyleDeclaration類型,它有一個方法getPropertyCSSValue

簡化提取

var rules = document.styleSheets[0/*sheetIndex*/].rules[0/*ruleIndex*/]; 
console.log(rules.toString()); // "[object CSSStyleRule]" 
for(var a = 0; a<rules.style.length; a++) 
{ 
    var rule = rules.style[a]; 
    console.log(rule,rules.style.getPropertyCSSValue(rule).cssText); // eg: "text-align","center" 
} 

這避免了"border"問題和"border-left"

2

使用這個表達式替換:

"text-align".replace(/-([a-z])/g,function(m,l,i){return i?l.toUpperCase():l}) 

這一個連字符,然後一個字母相匹配。替換返回字母,如果索引是真的(不是0),則大寫。

+0

+1無法想到一個快速的方法來消除第一次炒作而不改變以下字符 – 2014-10-28 17:32:03