如何清除a<;部门>;用javascript保存内容?

如何清除a<;部门>;用javascript保存内容?,javascript,html,Javascript,Html,我有。我有一些html目前在它。如何清除html并在其中插入完全不同的html 我试过了,但没有成功: document.getElementById('editform').innerHTML = ""; document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: blo

我有
。我有一些html目前在它。如何清除html并在其中插入完全不同的html

我试过了,但没有成功:

document.getElementById('editform').innerHTML = "";

document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: 

block;\"><textarea rows=\"10\" style=\"display: block;\" id=\"textLoc\" placeholder=\"Text to test\"cols=\"50\"></textarea>";
document.getElementById('editform').innerHTML=“”;
document.getElementById('editform').innerHTML=“”;

有什么想法吗?

我建议使用
document.createNode(…)
document.appendChild(…)
将HTML添加到div中,而不是将其作为innerHTML添加。更改innerHTML往往是有缺陷的。

这应该行得通……也许问题出在其他地方

var cell = document.getElementById("cell");

if ( cell.hasChildNodes() )
{
    while ( cell.childNodes.length >= 1 )
    {
        cell.removeChild( cell.firstChild );       
    } 
}
如果要删除所有子节点,请尝试以下操作:

function removeChildren(obj) {
  while(obj.hasChildNodes()) { obj.removeChild(obj.lastChild); }
};
可以这样称呼:

removeChildren(document.getElementById('editform'))

这应该行得通

顺便说一句,你不需要在字符串中转义,你可以在字符串中使用


另外,为了让您的生活更轻松,我建议您使用一些javascript库,如JQuery或Mootools,这样您的DOM操作更轻松,跨浏览器兼容。

只要您从新的HTML字符串中删除(或转义)换行符,您的代码就可以正常工作

示例:

因此,改变这一点:

document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: 

block;\"><textarea rows=\"10\" style=\"display: block;\" id=\"textLoc\" placeholder=\"Text to test\"cols=\"50\"></textarea>";
document.getElementById('editform').innerHTML=“”;
为此:

document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: block;\"><textarea rows=\"10\" style=\"display: block;\" id=\"textLoc\" placeholder=\"Text to test\"cols=\"50\"></textarea>";
document.getElementById('editform').innerHTML=“”;
或者这个:

document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: \
\
block;\"><textarea rows=\"10\" style=\"display: block;\" id=\"textLoc\" placeholder=\"Text to test\"cols=\"50\"></textarea>";
document.getElementById('editform').innerHTML=“”;

这不一定是真的,使用
innerHTML
时需要记住的事情不同。两种方法都是一样的。当您将innerHTML添加到元素时,子元素的所有事件侦听器都将被删除。这确实是我遇到的唯一一个。对,这就是我的意思。因为您必须重新分配所有事件侦听器不管怎样,我经常发现
innerHTML
的方法和属性更有效。你不需要在字符串中转义,你可以在html字符串中使用。是的,我正计划改变这一点,但在大多数情况下,当它相对基本时,它不是跨浏览器兼容吗?
document.getElementById('editform').innerHTML = "<input type=\"text\" placeholder=\"Title\" id=\"title\" name=\"title\" style=\"display: \
\
block;\"><textarea rows=\"10\" style=\"display: block;\" id=\"textLoc\" placeholder=\"Text to test\"cols=\"50\"></textarea>";