2010-03-20 21 views
11

Làm thế nào để sử dụng outerHTML trong JavaScript? Cảm ơnLàm thế nào để sử dụng outerHTML trong JavaScript?

+1

Bạn có thể muốn kiểm tra điều này: http://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string –

+0

Bản sao có thể có của [Cách chuyển đổi HTMLElement thành chuỗi ] (https://stackoverflow.com/questions/2474605/how-to-convert-a-htmlelement-to-a-string) – Graham

Trả lời

10

HTML bên ngoài là HTML của phần tử bao gồm cả phần tử. Tương phản điều này với innerHTML của phần tử, đó là HTML chứa trong một thẻ mở và đóng các phần tử. Theo định nghĩa, các phần tử không có cả thẻ mở và đóng đều không có innerHTML.

Sử dụng outerHTML khi bạn muốn thay thế hoàn toàn phần tử và nội dung của phần tử đó. Sử dụng innerHTML khi bạn chỉ muốn thay thế nội dung của phần tử.

7

outerHTML là thuộc tính Internet Explorer không chuẩn của một phần tử. Nó trả về html của phần tử và các phần tử con của nó. Trong một số trường hợp, nó có thể được thiết lập để thay thế hoàn toàn một phần tử bằng một chuỗi html.

+6

Một năm sau, và Chrome và Safari cũng có vẻ đã triển khai tính năng này. Tuy nhiên, tại thời điểm viết bài này, Firefox không hỗ trợ nó. –

+10

Hỗ trợ cho [outerHTML] (https://developer.mozilla.org/en/DOM/element.outerHTML) đã được thêm vào trong [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

Ý tưởng thú vị. Tuy nhiên, vì hầu hết các trình duyệt không hỗ trợ outerHTML đều hỗ trợ prototyping trên HTMLElement, tôi tự hỏi liệu nó có dễ dàng hơn để thực thi nó giả không? – scunliffe

0

Hầu hết các trình duyệt phổ biến nhất đều hỗ trợ outerHTML. Firefox là một ngoại lệ. Để biết thêm thông tin về hỗ trợ trình duyệt bên ngoàiHTML, hãy truy cập http://www.quirksmode.org/dom/w3c_html.html.

Nếu bạn có thể thêm jQuery vào trang của mình, tôi khuyên bạn nên bao gồm plugin jQuery outerHTML.

Các vấn đề liên quan