Javascript 第一次预弯,第一次后更换

Javascript 第一次预弯,第一次后更换,javascript,Javascript,下面是我的html代码片段: <div id="foo"><span id="bar"></span></div> 上面的标签之间没有空格。 我可以做些什么来满足我的要求: 在javascript中只使用一条语句 第一次执行javascript语句时,将textnode(存储在名为bazinga的变量中的字符串)前置到div#foo 在第一次执行后替换textnode,我的意思是,第二次、第三次。。。javascript语句的执行 普通的旧j

下面是我的html代码片段:

<div id="foo"><span id="bar"></span></div>

上面的标签之间没有空格。 我可以做些什么来满足我的要求:

  • 在javascript中只使用一条语句
  • 第一次执行javascript语句时,将textnode(存储在名为
    bazinga
    的变量中的字符串)前置到div#foo
  • 在第一次执行后替换textnode,我的意思是,第二次、第三次。。。javascript语句的执行

  • 普通的旧javascript,使用全局变量存储以前的操作。。。 测试了chrome版本的东西

    var firstReplace = true;
    function replaceIntoElement(elmId){
        var div = document.getElementById(elmId);
        if(firstReplace){
            div.innerHTML = bazinga + div.innerHTML    
            return;
        }
        div.childNodes[0].nodeValue = bazinga;
    }
    
    那看起来很优雅。。尽管使用全局变量是不好的,但再说一次,bazinga也是全局变量…;)

    用法:

    <button type="button" onclick="replaceIntoElement('foo')"> run me </button>
    
    运行我
    
    这是家庭作业吗?您尝试过什么?附加的文本节点应该放在span节点之前还是之后?纯javascript还是?我投票认为这个问题过于宽泛——可能的解决方案太多了。您还没有亲自尝试解决此问题。我们不是来帮你做家庭作业的。@BillGregg这不是家庭作业。我尝试了几种解决方案。一种是在html模板中的div元素中添加一个textnode前缀,这样我就可以使用
    document.getElementById('#foo').childNodes[0]。nodeValue
    每次替换这个textnode。但是这个解决方案看起来太难看了(抱歉,我的英语很差).我需要一些优雅的解决方案:)