要“重置”和元素,您需要记住它的原始内容,然后在调用“重置”它时替换它,例如
var markupCache = {};
function modifyElement(id, newMarkup) {
var el = document.getElementById(id);
// Only store innerHTML the first time
if (!(el in markupCache)) {
markupCache[id] = document.getElementById(id).innerHTML;
}
el.innerHTML = markup;
}
function restoreElement(id) {
// Only restore markup if have cached some for this element
if (id in markupCache) {
document.getElementById(id).innerHTML = markupCache[id];
}
}
请注意,这不会重置元素自己的属性和属性,只会重置内部 HTML。这可以通过使用outerHTML属性来部分解决,但这并没有得到很好的支持。
innerHTML或outerHTML都不会恢复动态添加的侦听器,并且可能会或可能不会在某些浏览器中恢复原始默认值(但在其他浏览器中会)。