Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从CSSStyleDeclaration对象获得真正的css属性名?_Javascript_Css - Fatal编程技术网

Javascript 如何从CSSStyleDeclaration对象获得真正的css属性名?

Javascript 如何从CSSStyleDeclaration对象获得真正的css属性名?,javascript,css,Javascript,Css,问题是一些css属性有不同的名称是javascript,例如js中的textOverflow是css中的text overflow js引擎中是否有我可以访问的翻译表,或者我必须自己做一个翻译数组或对象,如: transObj = { textOverflow : 'text-overflow' }; 例如,我在这个对象中循环,得到的只是js名称: for (var n in csd) { if (!csd.hasOwnProperty(n)) continue; csd[n].get

问题是一些css属性有不同的名称是javascript,例如js中的
textOverflow
是css中的
text overflow

js引擎中是否有我可以访问的翻译表,或者我必须自己做一个翻译数组或对象,如:

transObj = { textOverflow : 'text-overflow' };
例如,我在这个对象中循环,得到的只是js名称:

for (var n in csd) {
  if (!csd.hasOwnProperty(n)) continue;
  csd[n].getTrueCSSName() // is there something like this ?
}

或者简单的正则表达式替换就可以了,但我不知道是否所有js名称中的大号字母都转换为css名称中的
-[a-z]

所有包含
-
的css样式都被ECMAscript中的camelCase表示所替换,因为我们不能在所有情况下都使用
-
。您可以通过调用以下正则表达式来转换名称:

var name = "font-width";

// convert names like "font-width" into css camelCase form like "fontWidth"
name = name.replace( /-(\w)/g, function _replace( $1, $2 ) {
    return $2.toUpperCase();
});

这也适用于类似于
-webkit-box-shadow
或诸如此类的东西。

并且没有例外?这个正则表达式安全吗?从js到css也是如此?@rsk82:至少我没有发现任何异常。
float
转换为
cssFloat
:(