无法使用已创建元素的ID

时间:2018-04-22 17:33:57

标签: javascript html

我的问题是:

我创建了一个元素:

var crt = document.createElement("BUTTON");
var lst = document.createTextNode("\u2103");
crt.appendChild(lst);
crt.id = "change";
$(".information").append(crt); // information is a div

单击时,温度从摄氏度变为华氏度并返回:

var find = true;
var c;
var d = document.getElementById("change");
$( "#change" ).click(function() {
  if(find === true) {
    c = Math.trunc(s * 1.8 + 32); // s is the temperature in celsius from start
    t.innerHTML = "<br>Temperature: " + c;
    d.innerHTML = '&#8457;'

    find = false;
  } else {
    c = Math.trunc((c - 32) / 1.8);
    t.innerHTML = "<br>Temperature: " + c;
    d.innerHTML = "&#8451;";

    find = true;
  }
});

如果我尝试将某些内容更改为id&#34;则更改&#34;在CSS上,一切正常..但是当我在脚本中使用它并不起作用..但是如果具有id&#34;的元素改变&#34;是从文档的开头手动创建的,代码可以工作..你能告诉我这是什么问题吗?为什么这样使用它并不起作用?

提前致谢。

1 个答案:

答案 0 :(得分:2)

提供的codepen中第49-67行的代码执行并尝试在click id的元素上设置change处理程序。代码运行时,该元素尚未出现在文档中。

在使用id change动态创建元素后,您需要调用该代码。