我有以下JavaScript变量:
var fontsize = "12px"
var left= "200px"
var top= "100px"
我知道我可以像这样迭代地将它们设置为我的元素:
document.getElementById("myElement").style.top=top
document.getElementById("myElement").style.left=left
有没有可能把它们都放在一起,就像这样?
document.getElementById("myElement").style = allMyStyle
使用纯Javascript,你不能一次设置所有的样式;您需要为它们每个使用单行。
但是,您不必重复document.getElementById(…).style。一遍又一遍地编码;创建一个对象变量来引用它,你会让你的代码更易于阅读:
var obj=document.getElementById("myElement").style;
obj.top=top;
obj.left=left;
…等。比您的示例更容易阅读(坦白地说,和jQuery一样容易阅读)。
(如果Javascript设计正确,你也可以使用with关键字,但最好不要使用它,因为它会导致一些讨厌的名称空间问题)
在对象中使用CSSStyleDeclaration.setProperty()方法。样式对象的条目。
我们也可以用这个来设置CSS属性的优先级(“重要”)。
我们将使用“连字符”的CSS属性名。
Const styles = {
“字体大小”:“18 px”,
“粗细”:“大胆”,
“背景颜色”:“lightgrey”,
颜色:“红”,
"padding": "10px !important",
保证金:“20 px”,
宽度:“100px !重要”,
边框:1px纯蓝色
};
const elem = document.getElementById("my_div");
Object.entries(风格)。forEach(([prop, val]) => {
Const [value, pri = ""] = val.split("!");
elem.style。setProperty(prop, value, pri);
});
<div id="my_div"> Hello </div> .