Javascript 在createTextNode()中使用变量而不是字符串
我正试图通过Javascript向ul添加另一个li。我希望li根据现有变量具有动态内容。我可以让它用一个字符串附加一个li,没问题。只有当我使用变量时,事情才会出错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
//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