javascript - 使用对象构造函数设置 html 元素的样式

标签 javascript css constructor

我正在练习使用构造函数/对象。我想使用这种类型的对象动态地使用 CSS 设置一些 div 的样式。我正在尝试使用 document.getElementById 获取 div,但无法设置它们的样式。我收到错误消息“无法设置未定义的背景颜色”。看来我实际上并没有得到我想要的元素,或者它没有被保存到变量中。

如何获取元素并将其传递给构造函数?

<div id='div1'>div1</div>
<div id='div2'>div2</div>

function StyleDiv(id) {
document.getElementById('id');
this.style.backgroundColor = 'blue';
this.style.height = '110px';
this.style.width = '110px';
}

var div1st = new StyleDiv('div1');
var div2nd = new StyleDiv('div2');

最佳答案

您需要在变量中保留对所选元素的引用,然后在设置样式时使用该变量:

function StyleDiv(id) {
   var elm = document.getElementById(id); 
   elm.style.backgroundColor = 'blue';
   elm.style.height = '110px';
   elm.style.width = '110px';
}

请注意,我还删除了 id 周围的引号在getElementById(id)

关于“这个”

this最初在 JavaScript 中理解关键字可能有点麻烦。这是一个good article这将进一步解释它。

在那篇文章的帮助下,我相信您将能够为所有这些创建一个更加面向对象的方法。您可能希望将该元素作为实例的公共(public)属性,或者公开一个公共(public)方法来设置该元素的样式。

关于javascript - 使用对象构造函数设置 html 元素的样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21184597/

相关文章:

java - 没有必要将 super() 放在构造函数中吗?

javascript - 在 DIV 中重复图像后跟另一个图像

java - 使用构造函数重载和带有继承的预先存在的静态对象

javascript - 将数据从 JQuery on click 函数传递到 PHP 服务器?

javascript - 无论屏幕高度/宽度如何,如何使图像停留在屏幕底部?

javascript - 当球触及顶部边框时,如何添加显示 "game over"的警告框?

html - 内容溢出网格容器

c++ - 可以在全局对象构造函数中进行打印/记录还是未定义的行为?

javascript - 根据 Netsuite Suitecommerce Advanced 中的价格水平计算折扣

javascript - jquery data() 没有附加值