+ -
当前位置:首页 → 问答吧 → 给DIV的innerHTML赋值后很奇怪的问题

给DIV的innerHTML赋值后很奇怪的问题

时间:2011-11-17

来源:互联网

取出某个元素的innerHTML,赋给一个动态创建的div元素。但是发现div在解析的时候会把前面几个字符删除掉,导致在页面上显示不正常,有人碰到过这种情况吗?
比如:
JScript code

var divtemp = document.createElement("div");
divtemp.innerHTML = getInnerHTML("xx");


这时divtemp在页面显示是不正常的,打印出getInnerHTML()函数的返回值是正常的。
比如当getInnerHTML函数返回<tr><td>xxxxxxxxxxxxxxxxxxxxxxx</td>/tr>这样的值的时候,divtemp会把前面的<tr><td>去掉,直接从xxxxx开始。请问这怎么解决?

作者: xianglf   发布时间: 2011-11-17

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

作者: liangws   发布时间: 2011-11-17

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

作者: Legend1988   发布时间: 2011-11-17

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

作者: hzl96363   发布时间: 2011-11-17

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

作者: xianglf   发布时间: 2011-11-17

不要叫我解析取到的字符串,要疯掉的

作者: xianglf   发布时间: 2011-11-17

引用 4 楼 xianglf 的回复:
取到的值就是这样的,table的innerHTML又是只读的,各位有什么高招没
table的innerHTML是只读的?

作者: ifandui   发布时间: 2011-11-17

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

作者: axiheyhey   发布时间: 2011-11-17

var message = getInnerHTML("xx");
divtemp.appendChild(document.createTextNode(message));

这样试试。

作者: jordan102   发布时间: 2011-11-17

相关阅读 更多