2010-03-20 2 views
11

Come usare outerHTML in JavaScript? GrazieCome usare outerHTML in JavaScript?

+1

Si consiglia di controllare questo: http://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string –

+0

Possibile duplicato di [Come convertire un HTMLElement in una stringa ] (https://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string) – Graham

risposta

10

L'hHML esterno è l'HTML di un elemento che include l'elemento stesso. Confrontalo con innerHTML dell'elemento, che è l'HTML contenuto all'interno di un elemento che apre e chiude i tag. Per definizione, gli elementi senza i tag di apertura e di chiusura non hanno innerHTML.

Utilizzare il outerHTML quando si desidera sostituire completamente un elemento e il suo contenuto. Usa innerHTML quando vuoi solo sostituire il contenuto dell'elemento.

7

outerHTML è una proprietà di Internet Explorer non standard di un elemento. Restituisce l'html dell'elemento e i suoi elementi figli. In alcuni casi può essere impostato per sostituire completamente un elemento con una stringa html.

+6

Un anno e Chrome e Safari sembrano aver implementato questa funzione. Tuttavia, al momento di scrivere questo, Firefox non lo supporta. –

+10

Il supporto per [outerHTML] (https://developer.mozilla.org/en/DOM/element.outerHTML) è stato aggiunto in [Firefox 11] (https://developer.mozilla.org/en/Firefox_11_for_developers). –

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

Idea interessante. Tuttavia dal momento che la maggior parte dei browser che non supportano outerHTML supportano la prototipazione su HTMLElement mi chiedo se sarebbe più semplice implementarla pseudo-nativamente? – scunliffe