如果我单独设置我的属性,那么它们之后都是正确的:
document.getElementById("FlightPanels").style.height = (PANEL_HEIGHT + 20) + "px";
document.getElementById("FlightPanels").style.width = container_width + "px";
即使我先设置宽度,然后设置高度,它们也是正确的。
但是,如果我使用setAttribute():
document.getElementById("FlightPanels").setAttribute("style", "height:" + (PANEL_HEIGHT + 00) + "px");
document.getElementById("FlightPanels").setAttribute("style", "width:" + container_width + "px");
如果我先设置高度,则会丢失宽度。如果我先设置宽度,则会丢失高度。
我见过使用setAttribute()在一次调用中设置所有所需属性的解决方案,传递一个具有多个要设置的属性的javascript对象。
对我而言,这似乎比单独直接设置属性更加复杂,而且可读性更低。
如果我要设置大量属性,我发现个人设置方法更容易理解和理解。
我的问题是,是否有一些令人信服的理由,也许我不知道,这使得setAttribute()成为首选解决方案? 我是否应该将setAttribute()用于某些原则性或最佳实践"原因?或者如上所示单独设置属性是否可以?
我希望代码不仅可以工作,而且还符合标准。
编辑:感谢输入,伙计们,但我的问题的一部分与为什么两个后续调用setAttribute()相互撤消有关。是因为我以某种方式滥用它吗?或者这是该功能的预期设计?在这方面,它不是任何重复,因为标记的重复问题不涉及此事。但是您的意见很有帮助。感谢。
答案 0 :(得分:0)
setAttribute
是用于设置任何 HTML属性的通用函数。
您很少想要修改属性值的部分。
style
属性表示完整的CSS规则集,您通常需要修改它的特定部分。
setAttribute
通常不适用于设置style
。
感谢输入,伙计们,但是我的问题的一部分与为什么对setAttribute()的两个后续调用相互撤消有关。
第一个调用将属性设置为某个值。
第二个将其设置为其他内容。
设定。不附加。它用旧值替换旧值。