取出某个元素的innerHTML,赋给一个动态创建的div元素。但是发现div在解析的时候会把前面几个字符删除掉,导致在页面上显示不正常,有人碰到过这种情况吗?
比如:var divtemp = document.createElement("div");
divtemp.innerHTML = getInnerHTML("xx");这时divtemp在页面显示是不正常的,打印出getInnerHTML()函数的返回值是正常的。
比如当getInnerHTML函数返回<tr><td>xxxxxxxxxxxxxxxxxxxxxxx</td>/tr>这样的值的时候,divtemp会把前面的<tr><td>去掉,直接从xxxxx开始。请问这怎么解决?

解决方案 »

  1.   

    "<tr><td>"是在table里面的 ,你将他inner给div,肯定是不行的啊。。请根据规范的html来做
      

  2.   

    会不会是因为你创建的是div,无法添加tr、td,所以自动把它省掉了~
      

  3.   

    div里怎么可以有tr,td标签啊....
      

  4.   

    取到的值就是这样的,table的innerHTML又是只读的,各位有什么高招没
      

  5.   

    你这种需求不能用innerHTML,要用innerText(IE支持)或textContent(标准浏览器支持)
      

  6.   

    var message = getInnerHTML("xx");
    divtemp.appendChild(document.createTextNode(message));这样试试。
      

  7.   

    <TR><TD>倒是不丢失了,只是这样就是一些文本了,而不是一行行的数据了,连TD TD都一起显示出来了
      

  8.   

    innerHTML换成outerHTML 但不支持FF
      

  9.   

    晕倒,我把<TD>插入TR中都会丢失TD,是不是有什么BUG啊,代码如下:var trtemp = document.createElement("tr");
    trtemp.innerHTML = "<TD>XXXXXX</TD>";结果打印trtemp 还是xxxxx</TD>.
      

  10.   

    你为什么要获取table的innerHTML呢,talbe是个整体。你获取的时候要用outerHTML,这样它会把<table>标签一起带着,放div里就行
      

  11.   

    找到原因了,innerHTML默认有过滤机制,若innerHTML中声明的元素跟新创建的元素构成层级关系.则innerHTML中的层级关系中的开头关健字就会被过滤掉。
      

  12.   

    这个需求确实是比较怪异,是获取一个存在的thead,然后不要最后一行tr,并且在同一个页面上,不能对原对象进行操作,否则会影响到原对象,当时想的就偷懒,把原thead的innerHTML取出改改生成新的thead不就完了嘛,结果发现还有这么个问题
      

  13.   


    <table>
    <thead>
    </thead>
    <tbody>
    </tobdy>
    <tfoot>
    </tfoot>
    </table>就是表头
      

  14.   

    CSDN真是奇怪,我还不能编辑自己的回复,上面的</tobdy>打错了,应该是</tbody>
      

  15.   

    在<TR>前加空格,问题解决了,只是这种解决方案感觉不优雅呀,各位大大有什么更好的解决方法吗?
      

  16.   

    首先你要了解一下innerHTML和innerText的区别,再去用
    innertHTML本来就是要自动滤掉html标签的
      

  17.   

    不知道我有没有理解错,好像innerHTML并不过滤全部的HTML标签,只是当innerHTML里面的值形成类似<TR><TD></TD></TR>这样的关系时,才会过滤。
      

  18.   

    发现在JS版块好多人提问都说不清楚问题的。。LZ你是想在div里面放tr?如果是这样的话,别白费力气了,tr不能脱离table独立存在,和innerHTML没有任何关系。你试试这个页面就知道了<!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>add Emp</title>
    </head>
    <body>
    <div id="div">
    <tr>
    <td>Test Div</td>
    </tr>
    </div>
    </body>
    </html>
      

  19.   

    好吧,是我没清楚,其实我的本意不是要把TR放到DIV里面去,这只是举例说明。
    不过,把TR动态放到DIV中还真可以。