2008-11-28 13 views
7

में परिवर्तित करें एक jQuery परिणाम सेट को देखते हुए, आप इसे वापस सादे HTML में कैसे परिवर्तित करते हैं?एक jQuery सेट को HTML

<div class="abc"> 
    foo <strong>FOO</strong> 
</div> 
<div class="def"> 
    bar 
</div> 

-

var $mySet = $('div'); 

$mySet देखते हुए, आप ऊपर सादे HTML की ओर लौटने के बारे में कैसे जाना होगा?

उत्तर

4

अपने सेट ठीक एक आइटम के होते हैं, तो आप Ye Olde Javascript का उपयोग कर सकते हैं:

var html = $mySet[0].outerHTML; // note HTML is all caps... that always burns me 
+0

आप सभी तत्वों को काफी आसानी से प्राप्त करने के लिए इसका विस्तार कर सकते हैं: '$ mySet.map (function() {this.outerHTML;} लौटें)।() शामिल हों (''); 'वापस जब मैंने यह प्रश्न लिखा था, सभी ब्राउज़र 'बाहरी HTML' समर्थित नहीं हैं, लेकिन अब ऐसा लगता है कि [बहुत अच्छा समर्थन] (https://developer.mozilla.org/en/DOM/element.outerHTML#Browser_compatibility) – nickf

+1

यह केवल HTML स्ट्रिंग को वापस कर देगा पहला तत्व मिला। – vsync

+0

इस उत्तर का एक बड़ा प्रशंसक नहीं - क्या होगा यदि आपके सेट _doesn't_ में एक आइटम शामिल न हो? – Thomas

0
var $mySet = $('div'); 
var html = $mySet.html(); 

आप तत्व के HTML के साथ (untested) चाहते हैं:

var $mySet = $('div'); 
var html = $mySet.clone().wrap('<div></div>').html(); 

वैसे, यहाँ $ चर नाम का हिस्सा है। जावास्क्रिप्ट को परिवर्तनीय नामों के लिए PHP में $ की आवश्यकता नहीं है, लेकिन इसे प्राप्त करने में कोई दिक्कत नहीं होती है।

+1

गलत खेद है कि। यह सिर्फ पहले div के आंतरिक HTML को वापस कर देगा। मैं वास्तव में ऊपर दिए गए पहले उदाहरण में एचटीएमएल पर लौटने के लिए इसे देख रहा हूं। – nickf

+0

मेरी दूसरी स्निपेट को आज़माएं। – strager

0

jQuery appendTo विधि का उपयोग करके, यदि मैं समझता हूं कि "उपरोक्त सादे HTML पर लौटने" का अर्थ क्या है।

11

मैं एक अस्थायी कंटेनर बनाने, तो वह नए कंटेनर की html() हथियाने सुझाव देंगे:

var html = $('<div>').append($('div').clone()).html(); 
alert(html); 

// alerts: 

<div class="abc"> 
    foo <strong>FOO</strong> 
</div><div class="def"> 
    bar 
</div> 
1

शायद क्या आप चाहते हैं एक क्लाइंट-साइड templating इंजन है। पोस्ट Client Templating with jQuery

मैं इसका उपयोग कर रहा हूं और यह बहुत अच्छा है। आप केवल उस टेम्पलेट को सेट करते हैं जिसे आप एक div के अंदर उपयोग करना चाहते हैं, फिर आप उसे एक जेसन ऑब्जेक्ट/सरणी के साथ फ़ीड करते हैं और यही वह है।

संबंधित मुद्दे