<div id="a"></div>
document.getElementById("a").innerHTML +=html;当我html的内容是个表格  含有好多text框我添加一个html后 在text里面填写内容
然后在添加一个html  这个时候 第一个html里面的text里面的内容都没了
在IE下面 没有这个问题我不想用DOM去创建html内容 因为里面比较复杂
各位大大 有没什么别的方法?

解决方案 »

  1.   

    document.getElementById("a").innerText+=html; 
      

  2.   

    源码?<div id="a"> </div> 
    <script language='javascript'>
    function test()
    {
    document.getElementById("a").innerHTML +="<p>222222222222</p>"; 
    }
    </script>
    <input type='button' onclick='test()'/>
      

  3.   

    <div id="a"> </div> 
    <script language='javascript'>
    function test()
    {
        document.getElementById("a").innerHTML +="<input id='b' type=text>"; 
    }
    </script>
    <input type='button' onclick='test()' value ='添加'/>添加一次 然后在B里面写点数据  在点添加 第一次写的数据就没了
      

  4.   

    应该可以:
    <div id="a"> </div> 
    <script language='javascript'>
    function test()
    {
        document.getElementById("a").innerHTML +="<p>222222222222</p>"; 
    }
    </script>
    <input type='button' onclick='test()'/>
      

  5.   


    <div id="a"> </div> 
    <script language='javascript'>
    function test()
    {
        //document.getElementById("a").innerHTML +="<input id='b' type=text value='' /><br/>"; 
    var oInput = document.createElement('input');
    oInput.type = 'text';
    document.getElementById("a").appendChild(oInput);
    }
    </script>
    <input type='button' onclick='test()' value ='添加'/>如果你要这种效果只能用append方式~ innerHTML 只会把内部的 html 替换~ 
      

  6.   

               function test()
                {
                     alert(document.getElementById("a").innerHTML);
                     document.getElementById("a").innerHTML +="<input id='d' type=text>"; 
                };
    打印的时候 可以看到 ie 将值 输入的值附到了input 控件的 value属性里 而火狐没有
      

  7.   

    Lz "然后在添加一个html  这个时候 第一个html里面的text里面的内容都没了" 是什么意思?
      

  8.   

    是这个意思
    但是我的html太复杂了,不是仅仅一个text
    所以我不想用DOM 的方法去创建还有其他的方法没 ?  
      

  9.   

    如果LZ每次添加的东西都是一样的,可以这样用可以先用document.createDocumentFragment()创建一个frag,
    然后把每次要添加的东西加入到frag,
    用的时候document.getElementById("a").appendChild(frag.cloneNode(true));即可
      

  10.   

    经我测试论证,当 input的value属性动态修改后, ff的innerHTML没有更新其内容,但是如果动态修改input的其它属性,如size等,ff能正确处理,这可以看作是ff的一个bug,建议你用appendChild方法.
      

  11.   

    有两种方法,第一:用appendChild方法,如果不想用appendChild,可用第二种方法:
    在更改a的innerHTML之前,先用局部变量保存表单输入框的value值,在更改a的innerHTML后再还原输入框的value,如果输入框比较多,可以用对象直接量保存各个输入框value值,这样在还原时就可以轻松的用一个循环体把各个值还原。
      

  12.   

    innerHTML本来就不是w3c的标准,只是所有浏览器都实现了而已
      

  13.   

    innerHTML 各个浏览器实现的程度不一样吧 IE的最强大
      

  14.   

    FF 可以hacker  innerHTML 的。
    使用效果会一样。