我只想打印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]它会返回结果,但是它是正确的吗?
答案 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,""));