2013-05-29 15 views
8

कहते हैं एक है,एक HTML स्ट्रिंग को एक DOM तत्व में कनवर्ट करना?

var some_html = '<div class = "am_hold">' + 
    '<img name="bo_im" id="' + val.id + '" class="bookmark_image" src="' + val.favicon + '">' + 
    '<a target="_blank" name="bookmark_link" class="bookmark_link" href = "' + 
    val.url + '" id="' + val.id + '">' + val.title + '</a>' + 
    '<div><div class = "bookmark_menu"></div></div>' + 
    '</div>'; 

यह संभव

var some_element = `some_function`(some_html); 

करना है वहाँ एक पुस्तकालय और (2) एक पुस्तकालय का उपयोग कर के साथ प्रयोग कर some_function (1) बाहर के साथ के लिए एक कार्यान्वयन है।

+0

'var d = document.createElement ('div'); d.innerHTML = some_html; '? –

+0

इस जानकारी को आजमाएं 'https: // developer.mozilla.org/en-US/docs/code_snippets/HTML_to_DOM' – Eldar

उत्तर

33

अपने एचटीएमएल के लिए एक अस्थायी कंटेनर बनाएं, फिर इसकी सामग्री प्राप्त करें। कुछ ऐसा:

var d = document.createElement('div'); 
d.innerHTML = some_html; 
return d.firstChild; 
+0

@ pure_code.com: कोड की कम पंक्तियां हमेशा सर्वोत्तम विधि नहीं होती हैं। सिर्फ इसलिए कि एक लाइनर समाधान हो सकता है, इसका मतलब यह नहीं है कि यह _best_ कार्यान्वयन है। –

+0

@ pure_code.com: लेकिन ऐसा नहीं है। यदि आप चाहते हैं कि आप उन तीन पंक्तियों को एक फ़ंक्शन में डाल सकते हैं (* संपादित करें: * आपको वास्तव में अंतिम पंक्ति के बाद से 'वापसी' कथन है)। यदि आप नहीं जानते कि फ़ंक्शंस को कैसे परिभाषित किया जाए: http://eloquentjavascript.net/chapter3.html। –

+0

फिर इसे "some_function" नामक फ़ंक्शन के शरीर में चिपकाएं और उसे कॉल करें। – mgw854

4

jQuery.parseHTML() - फ़ंक्शन आपकी मदद कर सकता है।

http://api.jquery.com/jQuery.parseHTML/

+0

['jQuery.parseHTML'] (https://github.com/jquery/jquery/blob/master/src/core.js#L455-L480) [कोलिंक के उत्तर] का एक और विस्तृत संस्करण है (http://stackoverflow.com/a/16816777/298053)। –

+0

आशा है कि यह उत्तर आपको मदद करेगा: http://stackoverflow.com/a/3104237/2335272 – DonnyDee

+0

@DonnyDee कि उत्तर केवल HTML के लिए काम करेगा जो एक्सएमएल-मान्य है (यानी सभी HTML नहीं)। –

5

नीचे कोड

var myname = 'John Doe'; 

//This is using Jquery 
var htmltext = '<p style="color:red">'+myname+'This is a test</p>' 
$('#one').html(htmltext); 


//This is pure javascript 
document.getElementById('two').innerHTML='<p style="color:red">'+myname+'This is a test</p>'; 

JSfiddle link

मैं एक स्ट्रिंग निर्माण कर रहा हूँ और एचटीएमएल का उपयोग कर किसी HTML तत्व पर यह जोड़कर() के बजाय पाठ() फ़ंक्शन का प्रयास करें। इसे ब्राउजर द्वारा एचटीएमएल टैग के रूप में माना जाएगा और यूआई में बदलावों को डाइप्ले में दिखाया जाएगा।

+0

उन लोगों के लिए अपना कोड स्पष्टीकरण न भूलें जो शायद 'jQuery' या' जावास्क्रिप्ट 'से परिचित न हों। –

+0

कि JQUERY कोड सही है। धन्यवाद! – BossWalrus

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