Javascript nodeValue不接受新变量

时间:2012-05-07 18:46:10

标签: javascript dom

这就是我所拥有的:

我动态创建了这个标记:

 <p id="amount"><span></span></p>

现在我需要填补范围:

if (amount.firstChild.nodeType == 1) {
  amount.firstChild.nodeValue = text;

  alert(description.firstChild.nodeType); //this shows SPAN

}

amount是使用getElementbyId创建的变量,text是一个可以工作的变量,只显示一个数字。

现在,为什么不接受文本作为值?它渲染并清空了......并且文本工作得很好......

非常感谢你们!

3 个答案:

答案 0 :(得分:2)

尝试使用:

amount.firstChild.appendChild(document.createTextNode(text));

JS Fiddle proof-of-concept

答案 1 :(得分:1)

amount.firstChild.innerHTML = text;

答案 2 :(得分:0)

您可以在范围内测试嵌套文本节点,如果没有,则创建它。

var span = amount.firstChild
if (!span.firstChild)
    span.appendChild(document.createTextNode(text));
else
    span.firstChild.nodeValue = text;