replaceHtml

JAVASCRIPT:
  1.  
  2. /* This is much faster than using (el.innerHTML = str) when there are many
  3. existing descendants, because in some browsers, innerHTML spends much longer
  4. removing existing elements than it does creating new ones. */
  5. function replaceHtml(el, html) {
  6.         var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
  7.         var newEl = document.createElement(oldEl.nodeName);
  8.         // Preserve the element's id and class (other properties are lost)
  9.         newEl.id = oldEl.id;
  10.         newEl.className = oldEl.className;
  11.         // Replace the old with the new
  12.         newEl.innerHTML = html;
  13.         oldEl.parentNode.replaceChild(newEl, oldEl);
  14.         /* Since we just removed the old element from the DOM, return a reference
  15.         to the new element, which can be used to restore variable references. */
  16.         return newEl;
  17. };
  18.  

another way:


function replaceHtml(el, html) {
var oldEl = (typeof el === "string" ? document.getElementById(el) : el);
/*@cc_on // Pure innerHTML is slightly faster in IE
oldEl.innerHTML = html;
return oldEl;
@*/
var newEl = oldEl.cloneNode(false);
newEl.innerHTML = html;
oldEl.parentNode.replaceChild(newEl, oldEl);
/* Since we just removed the old element from the DOM, return a reference
to the new element, which can be used to restore variable references. */
return newEl;
};


posted on 2007-10-12 13:45  JIN Weijie  阅读(292)  评论(0编辑  收藏  举报