这可能是一个简单的问题。但我不知道如何做。这是我的js文件中的一个if语句。
if (splitStatus[0].includes("LIGHTS TURNED OFF")){
button2.style.background='#00FA9A' ;
button2.style.color=' black';
button2.style.boxShadow=' 0 0 20px 2px rgba(0, 148, 254, 0.825)';
button1.style.background ="black";
button1.style.color ="white";
button1.style.boxShadow='black';
}
这只是我的if语句之一,我有很多if语句。有没有办法缩短这段代码?例如,在一行中应用所有样式到按钮1?并在一行中应用所有样式到按钮2?谢谢你的时间。
注意:我可以有超过20个按钮。S0的css类的每个按钮不会帮助
4条答案
按热度按时间3htmauhk1#
你仍然可以使用Object.assign来实现你的一行程序,并利用js对象的灵活性、可重用性和可变性来做一些难以想象的事情。
w1jd8yoj2#
将不同的属性放入CSS中,并切换一个类。类似于:
然后您可以将原始代码更改为
其中
container
是DOM中两个按钮的祖先。WET JavaScript通常应该避免。WET CSS非常常见,它本身没有什么问题,尽管在某些情况下,使用SASS等预处理器可以减少重复性。
qvk1mo1f3#
方案一
简而言之,我们将
buttons
作为objects
动态添加到网页中,并为colors
、backgrounds
和box-shadow
提供一些键和值。如果
input
被选中,则使用每个button
样式来设置它们的样式取决于它的value
和每个objcet
中的num
键。如果未选中unset
样式,或者您可以添加其他样式(objects
中的keys
和values
),以防您想要设置它们的样式。所有你需要做的就是添加按钮!
溶液2
我们只在
HTML
页面中设置buttons
的值(不管你叫什么attribute
),并将class
设置为loop
,然后检查。解决方案1中的相同function
用于检查是否已检查,并根据num
和value
设置其样式。l3zydbqr4#
最好的方法是创建CSS类,然后在元素中添加/删除它。但是,如果你真的想把所有东西都封装在代码中,你可以使用元素样式的cssText属性来缩短代码:
例如
更多信息:https://developer.mozilla.org/en-US/docs/Web/API/CSSStyleDeclaration/cssText
示例:https://www.w3schools.com/jsref/prop_style_csstext.asp