2013-05-29 5 views
8

Sprich man hat,Konvertieren einer HTML-Zeichenfolge in ein DOM-Element?

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>'; 

ist es möglich,

var some_element = `some_function`(some_html); 

Gibt es eine Implementierung für some_function (1) mit aus zu tun, eine Bibliothek und (2) unter Verwendung einer Bibliothek.

+0

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

+0

Versuchen Sie diese Information 'https: // developer.mozilla.org/de-DE/docs/Code_snippets/HTML_to_DOM' – Eldar

Antwort

33

Erstellen Sie einen temporären Container für Ihr HTML und erhalten Sie dann seinen Inhalt. Etwas wie:

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

@pure_code.com: weniger Zeilen Code ist nicht immer die beste Methode. Nur weil es eine One-Liner-Lösung gibt, heißt das nicht, dass es die _best_ Implementierung ist. –

+0

@ pure_code.com: Aber es ist nicht. Sie können diese drei Zeilen in eine Funktion einfügen, wenn Sie wollen (* edit: * Sie müssen tatsächlich, da die letzte Zeile eine 'return' Anweisung ist). Wenn Sie nicht wissen, wie man Funktionen definiert: http://eloquentjavascript.net/chapter3.html. –

+0

Dann kleben Sie das einfach in den Körper einer Funktion namens "some_function" und rufen Sie das an. – mgw854

4

jQuery.parseHTML() - Funktion könnte Ihnen helfen.

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

+0

['jQuery.parseHTML'] (https://github.com/jquery/jquery/blob/master/src/core.js#L455-L480) ist nur eine ausführlichere Version von [Kolinks Antwort] (http://stackoverflow.com/a/16816777/298053). –

+0

Hoffe, diese Antwort hilft Ihnen: http://StackOverflow.com/A/3104237/2335272 – DonnyDee

+0

@DonnyDee diese Antwort wird nur für HTML, die XML-gültig ist (d. H. Nicht alle HTML). –

5

Versuchen Sie den Code unten

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

ich einen String zu bauen und es zu einem HTML-Element mit HTML() anstelle von text() Funktion anhängt. Dies wird vom Browser als HTML-Tag behandelt und zeigt die Änderungen in der Benutzeroberfläche an, wie in der Geige zu sehen.

+0

Vergessen Sie nicht, Ihrem Code eine Erklärung für diejenigen hinzuzufügen, die mit 'jQuery' oder' JavaScript' nicht vertraut sind. –

+0

Dieser JQUERY-Code ist perfekt. Vielen Dank! – BossWalrus

Verwandte Themen