如何清除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>";