[英]How to clean up divs contents?
我听到的只是说document.getElementById('divId').innerHTML = "";
通过JS编辑将来的divId内容并不安全,那么如何安全清理divs内容?
始终应该起作用的是:
var div = document.getElementById('divId');
while(div.hasChildNodes()) {
div.removeChild(div.firstChild);
}
innerHTML
不是任何规范的一部分,但已被浏览器广泛支持。
我写了一些与Felix Kling类似的东西,唯一的区别是我想传递id或引用。 所以我这样写:
function removeAllChildNodes(node) {
i = (typeof(node) == "object") ? node : document.getElementById(node);
while (i.hasChildNodes()) {
i.removeChild(i.firstChild);
}
}
将innerHTML属性设置为nothing将消除具有指定DIV的任何DOM节点。 没有“安全”的风险。
你可以安全地做到这一点:P
我相信这是JS框架(例如jQuery)的亮点……它们针对跨浏览器安全性进行了优化-包括安全的DOM元素删除,尽管您会降低一些计算速度(设置innerHTML始终是最快的)方式)
至于其他对此感到疑惑的人,某些浏览器(尤其是MSIE)存在一些缺陷,这些缺陷会导致浏览器崩溃或在某些条件下允许在客户端执行恶意程序,因此这就是为什么设置innerHTML可能不如人们习惯的那样安全。认为;-)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.