2010-03-20 29 views
11

如何在JavaScript中使用outerHTML?谢谢如何在JavaScript中使用outerHTML?

+1

您可能想要检查此:http://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string – 2010-03-20 14:49:14

+0

可能重复的[如何将HTMLElement转换为字符串](https://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string) – Graham 2017-10-01 15:17:15

回答

10

outerHTML是包含元素本身的元素的HTML。将其与元素的innerHTML进行对比,元素是元素打开和关闭标记中包含的HTML。根据定义,没有开放标签和结束标签的元素没有innerHTML。

当您要完全替换元素及其内容时,请使用outerHTML。当你只想替换元素的内容时使用innerHTML。

7

outerHTML是元素的非标准Internet Explorer属性。它返回元素的html及其子元素。在某些情况下,它可以设置为用html字符串完全替换元素。

+6

一年过去了,Chrome和Safari似乎也实现了此功能。但是,在撰写本文时,Firefox不支持它。 – 2011-08-19 10:34:55

+10

在[Firefox 11](https://developer.mozilla.org/en/Firefox_11_for_developers)中添加了对[outerHTML](https://developer.mozilla.org/en/DOM/element.outerHTML)的支持。 – 2012-04-10 16:58:14

11
function getHTML(node){ 
    if(!node || !node.tagName) return ''; 
    if(node.outerHTML) return node.outerHTML; 

    // polyfill: 
    var wrapper = document.createElement('div'); 
    wrapper.appendChild(node.cloneNode(true)); 
    return wrapper.innerHTML; 
} 
+0

有趣的想法。然而,因为大多数不支持outerHTML的浏览器确实支持HTMLElement原型,我想知道是否更容易实现伪本机? – scunliffe 2010-03-20 15:48:39