जवाबों:
Jldupont के उत्तर पर विस्तार करते हुए, आप मक्खी पर एक रैपिंग तत्व बना सकते हैं:
var target = document.getElementById('myElement');
var wrap = document.createElement('div');
wrap.appendChild(target.cloneNode(true));
alert(wrap.innerHTML);
मैं वास्तविक दस्तावेज़ में तत्व को निकालने और पुनः स्थापित करने से बचने के लिए तत्व का क्लोनिंग कर रहा हूं। यह महंगा हो सकता है यदि आप जिस तत्व को प्रिंट करना चाहते हैं, उसके नीचे एक बहुत बड़ा पेड़ है, हालांकि।
उपयोग करें outerHTML
:
var el = document.getElementById( 'foo' );
alert( el.outerHTML );
outerHTML
FF11 के बाद से समर्थित है: developer.mozilla.org/en-US/docs/Web/API/element.outer HTML ।
सबसे पहले, उस तत्व को div
डालें जो प्रश्न में लपेटता है , id
तत्व पर एक विशेषता डालें और फिर उस getElementById
पर उपयोग करें : एक बार जब आपको लेमेंट मिल जाता है, तो बस HTML पुनः प्राप्त करने के लिए 'e.innerHTML` करें।
<div><span><b>This is in bold</b></span></div>
=>
<div id="wrap"><div><span><b>This is in bold</b></span></div></div>
और फिर:
var e=document.getElementById("wrap");
var content=e.innerHTML;
ध्यान दें कि outerHTML
क्रॉस-ब्राउज़र संगत नहीं है।
div
सूप में एक अतिरिक्त जोड़ना चाहते हैं :)
document
... तो यह कहां है, क्या आप हम सभी को बताएंगे ?
यदि आप एक हल्का पदचिह्न चाहते हैं, लेकिन एक लंबी लिपि है, तो तत्वों को इनर HTML प्राप्त करें और केवल खाली माता-पिता को बनाएं और क्लोन करें-
function getHTML(who,lines){
if(!who || !who.tagName) return '';
var txt, ax, str, el= document.createElement('div');
el.appendChild(who.cloneNode(false));
txt= el.innerHTML;
ax= txt.indexOf('>')+1;
str= txt.substring(0, ax)+who.innerHTML+ txt.substring(ax);
el= null;
return lines? str.replace(/> *</g,'>\n<'): str;
//easier to read if elements are separated
}
var x = $('#container').get(0).outerHTML;
जैसा कि बाहरी HTML केवल IE है, इस फ़ंक्शन का उपयोग करें:
function getOuterHtml(node) {
var parent = node.parentNode;
var element = document.createElement(parent.tagName);
element.appendChild(node);
var html = element.innerHTML;
parent.appendChild(node);
return html;
}
प्रकार का मूल तत्व का फर्जी खाली तत्व बनाता है और उस पर इनर HTML का उपयोग करता है और फिर तत्व को सामान्य डोम में वापस भेजता है
आप इसके लिए क्रॉस ब्राउजर होना चाहते हैं।
function OuterHTML(element) {
var container = document.createElement("div");
container.appendChild(element.cloneNode(true));
return container.innerHTML;
}
element
दस्तावेज़ से हटा दिया जाएगा जब बुलाया, सही?
पुराना सवाल लेकिन नए लोगों के लिए जो आसपास आते हैं:
document.querySelector('div').outerHTML
फंक्शनबाह बाहरी एचटीएमएल को एलिमेंट के आधार पर परिभाषित करें। रूटर HTML:
var temp_container = document.createElement("div"); // empty div not added to DOM
if (temp_container.outerHTML){
var outerHTML = function(el){return el.outerHTML||el.nodeValue} // e.g. textnodes do not have outerHTML
} else { // when .outerHTML is not supported
var outerHTML = function(el){
var clone = el.cloneNode(true);
temp_container.appendChild(clone);
outerhtml = temp_container.innerHTML;
temp_container.removeChild(clone);
return outerhtml;
};
};
var el = document.getElementById('foo');
el.parentNode.innerHTML;