Javascript 在createTextNode()中使用变量而不是字符串

Javascript 在createTextNode()中使用变量而不是字符串,javascript,dynamic,html-lists,appendchild,createtextnode,Javascript,Dynamic,Html Lists,Appendchild,Createtextnode,我正试图通过Javascript向ul添加另一个li。我希望li根据现有变量具有动态内容。我可以让它用一个字符串附加一个li,没问题。只有当我使用变量时,事情才会出错 //Adding to List listOfPlayers.style.display = "block"; var node = document.createElement("LI"); var textnode = document.createTextNode(playerInpu

我正试图通过Javascript向ul添加另一个li。我希望li根据现有变量具有动态内容。我可以让它用一个字符串附加一个li,没问题。只有当我使用变量时,事情才会出错

//Adding to List
listOfPlayers.style.display = "block";
var node = document.createElement("LI");
var textnode = document.createTextNode(playerInput.value);
node.appendChild(textnode);
listOfPlayersNumerated.appendChild(node);
问题在于:

var textnode = document.createTextNode(playerInput.value);
我尝试了一个文本字符串(如下所示),但它没有出现问题

var textnode = document.createTextNode("New Player");

所以我把它改了,这样你就可以看到变量的来源了

最上面:

var inputPlayer = document.getElementById("inputPlayer");
然后我只需添加.value以获得以下输入的值:

//Adding to List
listOfPlayers.style.display = "block";
var playerName = playerInput.value;
console.log(playerName);
var node = document.createElement("LI");
var textnode = document.createTextNode(playerName);
node.appendChild(textnode);
listOfPlayersNumerated.appendChild(node);

它会记录在控制台上,但它不会出现在ul上好的,我相信它不喜欢这个范围。尽管在控制台中打印出了变量。我搬家了

var playerName = playerInput.value;
启动并退出当前功能。奇怪的是,console.log()会接受它,但不会接受该范围内的.createTextNode()


因此,通过移动新变量在函数外部声明的位置,它似乎已经解决了问题

您在哪里声明了
playerInput.value
?什么是
playerInput.value
var x='hello';document.createTextNode(x)粘贴在控制台中,则其工作正常。这表明你使用的变量有问题。我在Codepen上试用过,效果很好。我认为这里有一个不同的问题。我声明playerInput.value稍微高一点
var playerInput=document.getElementById(“playerInput”)@dwosk@VLAZ