首页 > 解决方案 > 我怎样才能 document.getElementbyID 的变量?

问题描述

我想对span基于它们的某些元素进行更改id

所以我给每一个divspan一个id,然后我尝试给.style.color每一个span

但是会看到一个错误:Cannot read property 'style' of null"

我不知道我做错了什么。

这是我的程序的简单可复制模型

for (y = 0; y < 7; y++) {
  let colonne = document.createElement("div");
  colonne.className = "horaire_one";
  colonne.id = ("col" + y);
  for (x = 0; x < 26; x++) {
    let span = document.createElement("span");
    span.className = "pasdispo_one_rpv";
    span.id = (colonne.id + x);
    document.getElementById(span).style.color = "green";
  }
}

标签: javascript

解决方案


您试图在将元素添加到 DOM 之前从 DOM 中引用它。你不会找到它。创建跨度时,您已经拥有对跨度的引用。

for (let y = 0; y < 7; y++) {
  let colonne = document.createElement("div");
  colonne.className = "horaire_one";
  colonne.id = "col" + y;
  for (let x = 0; x < 26; x++) {
    let span = document.createElement("span");
    span.className = "pasdispo_one_rpv";
    span.id = colonne.id + (x + y * 26);
    span.style.color = "green";
    span.textContent = x + y * 26;
    colonne.appendChild(span);
  }
  document.body.append(colonne);
}
.pasdispo_one_rpv {
  border: 1px solid black;
  width: 1.4em;
  display: inline-block;
}


推荐阅读