带有三进制if的左侧赋值无效
Invalid assignment left-hand side with ternary if
我想创建这样的样式表:
var sheet = document.createElement('style'); sheet.type = 'text/css';
sheet.innerHTML = data.style;
但IE似乎需要自己的语法。为了简化这个答案的代码,我尝试了
var sheet = document.createElement('style'); sheet.type = 'text/css';
(sheet.styleSheet ? sheet.styleSheet.cssText : sheet.innerHTML) = data.style;
但这就抛出了ReferenceError: invalid assignment left-hand side
。
那么,我必须使用。。。
var sheet = document.createElement('style'); sheet.type = 'text/css';
if(sheet.styleSheet) sheet.styleSheet.cssText = data.style;
else sheet.innerHTML = data.style;
还是有更简单的替代方案?
您可以随时执行:
sheet.styleSheet ? sheet.styleSheet.cssText = data.style
: sheet.appendChild(document.createTextNode(data.style));
FIDDLE
以下是一个解决方案,它不会让未来的维护人员怀疑代码到底做了什么:
function setSheetContent( sheet, text ) {
if(sheet.styleSheet)
sheet.styleSheet.cssText = text;
else
sheet.innerHTML = text;
}
var sheet = document.createElement('style');
sheet.type = 'text/css';
setSheetContent( sheet, data.style );
或者为了更方便而将其包装起来(如果您永远不想更改现有纸张的内容)
function stylesheetWithContent( sheet, text ) {
var sheet = document.createElement('style');
sheet.type = 'text/css';
if(sheet.styleSheet)
sheet.styleSheet.cssText = text;
else
sheet.innerHTML = text;
return sheet;
}
var sheet = stylesheetWithContent( data.style );
相关文章:
- 未捕获的ReferenceError:赋值中的左侧无效
- 变量赋值无效
- Javascript/Html 未捕获的引用错误:赋值中的左侧无效;未捕获的引用错误:未定义计算
- 样式属性赋值上的“赋值中的左侧无效”
- 左侧赋值无效(railo.transformer.bytecode.op.OpString)
- 在javascript中构建HTML表,得到“引用错误:左侧无效赋值”
- 更改 CSS“z-index”属性:“赋值中的左侧无效”
- Javascript 错误:左侧赋值无效
- 在引用错误中将字符串放在一起:左侧的赋值无效
- 未捕获的引用错误:赋值(匿名函数)中的左侧无效
- jQuery/Javascript赋值左侧无效
- 为innerHTML赋值无效
- 带有三进制if的左侧赋值无效
- 在我必须做的一件简单的事情中,赋值中的左侧无效
- "赋值中的左侧无效“;当接收到来自Facebook API的响应时
- 我得到了“;赋值中的左侧无效“;在我的代码(JS)中
- 变量名称-赋值中左侧无效
- 未捕获的ReferenceError:赋值javascript中的左侧无效
- 如何处理'无效赋值left hand '错误:firefox或chrome
- 如果第一个条件为true,则在javascript中为变量赋值,引用错误左侧赋值无效