Can';t设置JavaScript中创建的div按钮的值

Can';t设置JavaScript中创建的div按钮的值,javascript,html,Javascript,Html,我试图在JS中动态地向div添加一个按钮。我可以在没有设置按钮值(即空白按钮)的情况下执行此操作,但只要我尝试为按钮添加值,div就会消失。你知道为什么这样不行吗 var btn=document.createElement(“按钮”); btn.id=“myBtn”; document.getElementById(“myBtn”).value=“test”//这就是问题的根源 儿童分部(btn)您混淆了两行。将最后两行切换到: document.getElementById("myBtn"

我试图在JS中动态地向div添加一个按钮。我可以在没有设置按钮值(即空白按钮)的情况下执行此操作,但只要我尝试为按钮添加值,div就会消失。你知道为什么这样不行吗

var btn=document.createElement(“按钮”);
btn.id=“myBtn”;
document.getElementById(“myBtn”).value=“test”//这就是问题的根源

儿童分部(btn)您混淆了两行。将最后两行切换到:

document.getElementById("myBtn").value = "test"; // This is causing the problem
div.appendChild(btn);
document.getElementById只查找已经添加到DOM中的元素。因此,如果您将它添加到DOM中,然后通过id获取它,您将不会有任何问题。在前面的示例中,实际上根本不需要使用document.getElementById。您已经有了对HTMLButtoneElement的引用

您所需要的只是:

var btn = document.createElement("button");
btn.id = "myBtn";
btn.value = "test"; // This is causing the problem
div.appendChild(btn);
顺便问一下,您是否打算将“test”作为按钮文本?那么你应该使用:

btn.innerHTML = "test"
而不是:

btn.value = "test".

您不需要按id获取按钮,它已经作为变量btn存在,而不是在文档中。 请尝试:


btn.value=“测试”

btn.innerText=“测试”另外,在附加按钮之前,该按钮不是DOM的一部分,因此在此之前不要使用document.getElementById。感谢您的解释。我在DIV之后使用了btn.innerHTML,这很有效。