匿名对象
问题描述:
集的innerHTML我想设置style
件innerHTML
,但Object.defineProperty
覆盖本地setter和它成为常用的属性。 我知道我应该将它分解为元素创建和属性赋值,但是我对没有临时变量(甚至在匿名块)中这样做感兴趣。匿名对象
的javascript:
document.body.appendChild(
Object.defineProperty(document.createElement('style'),
'innerHTML',
{ value:'div{color:gainsboro;}' }
)
)
附:这不是生产代码,这个问题只是为了好奇。
答
我想你想Object.assign
(ES 6):
var styleElement = Object.assign(
document.createElement('style'),
{innerHTML: 'div{color:gainsboro;}'}
);
答
你可以只追加属性是这样的:
<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>
两个方法调用,但没有临时变量。
+0
您可以使用'document.body'来引用html文档的'body'。 – OwnageIsMagic
通过想avoir临时变种您要添加更多的复杂性,我不知道这是一个很好的事情,也因为你通过你的对象因为参数是建立一个临时的变种,在函数内部这样你就不会得到什么 – user3
如果你只是想插入式的标签,你可以只是做:'document.head.insertAdjacentHTML(“”)',没有需要创建元素,临时变量或尝试操作属性 –