代码之家  ›  专栏  ›  技术社区  ›  Deniss Kozlovs

如何在不影响DOM的情况下获取HTML的克隆、修改、获取HTML字符串?

  •  2
  • Deniss Kozlovs  · 技术社区  · 15 年前

    我有一些这样的HTML代码:

    <div style="background:red;width:900px;height:200px" id="wrap">
        <div id="inner" style="width:300px;float:left">
           ...
        </div>
    </div>
    

    我需要:

    1)删除“样式”属性,可能还有其他一些属性

    2)只保留“id”属性

    4)获取作为字符串的结果HTML

    5) 所有这些都不会影响原始标记

    我尝试将它们克隆为JavaScript对象,但对它们的操作会影响DOM。

    2 回复  |  直到 15 年前
        1
  •  4
  •   Christian C. Salvadó    15 年前

    clone #wrap

    var cloned = $('#wrap').clone(), 
       container = $('<div></div>'); 
    
    cloned.find('div').andSelf().removeAttr('style'); 
    
    alert(container.append(cloned).html());
    

    here

        2
  •  1
  •   bobince    15 年前

    var el= document.getElementById('wrap');
    el= el.cloneNode(true);
    el.removeAttribute('style');
    el.getElementsByTagName('div')[0].removeAttribute('style');
    
    // Get full markup (like outerHTML, but better-supported)
    //
    var outer= document.createElement('div');
    outer.appendChild(el);
    alert(outer.innerHTML);