简体   繁体   English

设置匿名对象的innerHTML

[英]Set innerHTML of anonymous object

I want to set innerHTML of style element, but Object.defineProperty overrides native setter and it becomes usual property. 我想设置style元素的innerHTML ,但是Object.defineProperty会覆盖原生setter,它会变成通常的属性。 I know that I should split it to element creation and property assignment, but I interested in doing this without temp vars (even in anonymous block). 我知道我应该将它拆分为元素创建和属性赋值,但我有兴趣在没有临时变量的情况下这样做(即使在匿名块中)。

javascript: JavaScript的:

document.body.appendChild(
Object.defineProperty(document.createElement('style'), 
                      'innerHTML', 
                      { value:'div{color:gainsboro;}' }
                     )
)

ps It`s not production code, this question asked just for curiosity. ps这不是生产代码,这个问题仅仅是为了好奇。

I think you want Object.assign (ES 6): 我想你想要Object.assign (ES 6):

var styleElement = Object.assign(
  document.createElement('style'), 
  {innerHTML: 'div{color:gainsboro;}'}
);

You can just append the attribute this way: 您可以这样添加属性:

<html>
<body id="bdy">
<script>

document.getElementById("bdy").appendChild(document.createElement('style'));

document.getElementById("bdy").lastChild.innerHTML = 'div{color:gainsboro;}'
</script>


<div>
This is a div.
</div>
</body>
</html>

Two method calls, but no temp variable. 两个方法调用,但没有临时变量。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM