如何只打印outerHTML

时间:2014-04-22 14:06:01

标签: javascript html dom

我只想打印outerHTML而不打印innerHTML。我怎样才能做到这一点?

示例HTML:

<div id="one">
    <div id="two">
        <div id="three">
            <div id="four">
            <div>
        </div>
    </div>
</div>

渴望外出:

<div id="two"></div>

我尝试使用outerHTML,但它返回了我

<div id="two">
    <div id="three">
        <div id="four">
        <div>
    </div>
</div>

如果我尝试删除innerHTML,它会影响DOM

编辑我试过这个     $( '#2')。克隆()。HTML( '')[0]

它会返回结果,但是它是正确的吗?

4 个答案:

答案 0 :(得分:1)

    function outerHTML(id){
       var clone = document.getElementById(id).cloneNode();
       clone.innerHTML = "";
       return clone.outerHTML;
    }

    //usage
    outerHTML("one");

JS小提琴: http://jsfiddle.net/6V34p/1

答案 1 :(得分:0)

我不知道这是不是你想要的,但你有没有尝过这样的东西。

<div class="divName">
    <div id="123">
       <p>HelloWorld</p>
    </div>
    <div id="456">
       <p>Not Here</p>
   </div>
</div>


var alert = $('#123').clone().wrap('<div></div>').parent().html();
alert(alert);

答案 2 :(得分:0)

使用innerHTML将始终显示标记及其所有子元素。

<div id="two">
    <div id="three">
        <div id="four">
        <div>
    </div>
</div>

最好的方法是首先使用outerHTML,然后使用jquery隐藏子元素。

答案 3 :(得分:0)

alert(document.getElementById("one").outerHTML.replace(c.innerHTML,""));