【问题标题】:Dynamically created divs with added class don't have styling添加类的动态创建的 div 没有样式
【发布时间】:2021-11-10 12:39:59
【问题描述】:

我正在尝试通过 for 循环动态生成一些 div。尽管我添加了一个类并且我可以在开发人员工具中看到该类,但它们没有颜色和大小样式。

public addDivs() {
   for(let i = 0; i < 10; i++) {
      let div = document.createElement('div');
      div.classList.add('test');
      div.innerHTML = 'testing'
   }
}


.test {
   color:red;
   background-color:green;
   height: 40px;
   width: 40px;
}

当我添加这样的样式时,它确实有效。

public addDivs() {
   for(let i = 0; i < 10; i++) {
      let div = document.createElement('div');
      div.innerHTML = 'testing'
      div.style.color = 'red';
   }
}

是否可以(不使用 JQuery)从 css 文件中获取样式?

编辑:另外我应该补充一点,只有当我将代码放入 for 循环时它才开始失败。

【问题讨论】:

  • 你导入你的样式表了吗?
  • 是的,其他元素也可以。另外我应该补充一点,只有当我将代码放入 for 循环时它才开始失败。
  • 这是打字稿。
  • 使用功能

标签: javascript html css typescript


【解决方案1】:

创建后添加元素。现有的类和样式适用于动态创建的节点。

function addDivs() {
   for(let i = 0; i < 10; i++) {
      let div = document.createElement('div');
      div.classList.add('test');
      div.innerHTML = 'testing:'+i;
      document.querySelector("body").appendChild(div);
   }
}
addDivs();
.test {
   color:red;
   background-color:green;
   height: 40px;
   width: 100px;
   margin-bottom:4px;
}

【讨论】:

  • 他当然知道:and I can see the class in the developer tools.
猜你喜欢
  • 1970-01-01
  • 2014-09-27
  • 2013-10-24
  • 1970-01-01
  • 2020-01-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-29
相关资源
最近更新 更多