जवाबों:
मुझे लगता है कि आप पूर्ण HTML स्ट्रिंग के लिए पूछ रहे हैं। अगर ऐसा है, तो कुछ इस तरह से किया जाएगा:
$('<div>').append($('#item-of-interest').clone()).html();
यह यहां और अधिक गहराई से समझाया गया है , लेकिन अनिवार्य रूप से आप ब्याज की वस्तु को लपेटने के लिए एक नया नोड बनाते हैं, जोड़तोड़ करते हैं, इसे हटाते हैं और एचटीएमएल को पकड़ते हैं।
यदि आप एक स्ट्रिंग प्रतिनिधित्व के बाद हैं, तो साथ जाएं new String(obj)
।
मैंने 2009 में मूल उत्तर लिखा था। 2014 तक, अधिकांश प्रमुख ब्राउज़र अब outerHTML
एक मूल संपत्ति के रूप में समर्थन करते हैं (उदाहरण के लिए, फ़ायरफ़ॉक्स और इंटरनेट एक्सप्लोरर ), इसलिए आप कर सकते हैं:
$('#item-of-interest').prop('outerHTML');
$(...)
है एक वैध डोम नोड है।)
data
क्या आप थोड़ा और स्पष्ट कर सकते हैं? यदि आप एक टैग के अंदर HTML प्राप्त करने की कोशिश कर रहे हैं, तो आप कुछ ऐसा कर सकते हैं:
HTML स्निपेट:
<p><b>This is some text</b></p>
jQuery:
var txt = $('p').html(); // Value of text is <b>This is some text</b>
HTML नोड (ऑब्जेक्ट) के लिए क्या गुण और विधियाँ उपलब्ध हैं, यह जानने का सबसे अच्छा तरीका है:
console.log($("#my-node"));
JQuery 1.6+ से आप अपने स्ट्रिंग आउटपुट में HTML टैग्स को शामिल करने के लिए बस बाहरी HTML का उपयोग कर सकते हैं:
var node = $("#my-node").outerHTML;
$('#my-node').get(0).outerHTML
mppfiles के जवाब के रूप में है
.outerHTML
मेरे लिए काम नहीं किया, लेकिन .prop('outerHTML')
किया।
jQuery यहाँ पर है, इसलिए:
jQuery.fn.goodOLauterHTML= function() {
return $('<a></a>').append( this.clone() ).html();
}
सभी HTML सामान वापस करें:
$('div' /*elys with HTML text stuff that you want */ ).goodOLauterHTML(); // alerts tags and all
यह मेरे लिए ठीक काम लगता है:
$("#id")[0].outerHTML
स्वीकृत उत्तर पाठ नोड्स को कवर नहीं करता है (अपरिभाषित मुद्रित है)।
यह कोड स्निपेट इसे हल करता है:
var htmlElements = $('<p><a href="http://google.com">google</a></p>↵↵<p><a href="http://bing.com">bing</a></p>'),
htmlString = '';
htmlElements.each(function () {
var element = $(this).get(0);
if (element.nodeType === Node.ELEMENT_NODE) {
htmlString += element.outerHTML;
}
else if (element.nodeType === Node.TEXT_NODE) {
htmlString += element.nodeValue;
}
});
alert('String html: ' + htmlString);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
.Html का उपयोग करने के लिए क्लोन और जोड़ने की आवश्यकता नहीं है (), आप कर सकते हैं:
$('#item-of-interest').wrap('<div></div>').html()
wrap()
लिपटे हुए तत्व को वापस नहीं करता है , न कि उस तत्व को जिसके साथ इसे लपेटा गया है? तो यह चाहिए के HTML देना #item-of-interest
नहीं यह की मूल div
(जब तक कि jQuery के 2012 के फरवरी के बाद से बदल गया) तत्व।
यदि आप इसे कहीं पास करने के लिए एक HTML तत्व को कड़ा करना चाहते हैं और इसे एक तत्व के लिए वापस भेजते हैं तो तत्व के लिए एक अद्वितीय क्वेरी बनाकर प्रयास करें:
// 'e' is a circular object that can't be stringify
var e = document.getElementById('MyElement')
// now 'e_str' is a unique query for this element that can be stringify
var e_str = e.tagName
+ ( e.id != "" ? "#" + e.id : "")
+ ( e.className != "" ? "." + e.className.replace(' ','.') : "");
//now you can stringify your element to JSON string
var e_json = JSON.stringify({
'element': e_str
})
से
//parse it back to an object
var obj = JSON.parse( e_json )
//finally connect the 'obj.element' varible to it's element
obj.element = document.querySelector( obj.element )
//now the 'obj.element' is the actual element and you can click it for example:
obj.element.click();