2010-03-04 9 views
5

Wenn Sie jQuery verwenden, um Markup dynamisch zu erstellen, ist es manchmal nützlich, dass es den eigentlichen HTML-Code, der als String generiert wird, zurückgibt und nicht als ein Bündel von jQuery-Objekten. Gibt es eine Möglichkeit, dies zu tun? Zum Beispiel hier:Gibt es eine Möglichkeit, jQuery-Ausgabe * tatsächliches Markup * zu machen?

$("<strong></strong>").text("Hi there!"); 

Ich mag

die Klartextzeichenfolge extrahieren können
"<strong>Hi there!</strong>" 

so, dass ich sie aus der Ferne zwischenspeichern kann. Gibt es eine Möglichkeit, dies zu tun?

Antwort

1

Rufen Sie einfach .html(), um HTML von einem beliebigen Element, einschließlich der generierten. Dies ist von einer Chrome-Entwicklertoolsitzung:

Sie können sehen, die erste zurückgegebene ein Objekt, die zweite gibt Text zurück.

3

Sie können ein OuterHTML-Plugin dafür verwenden. Here is one:

jQuery.fn.outerHTML = function(s) { 
    return (s) 
    ? this.before(s).remove() 
    : jQuery("<p>").append(this.eq(0).clone()).html(); 
} 

Verbrauch:

alert($("<strong></strong>").text("foo").outerHTML()); 
// alerts <strong>foo</strong> 
3

Ja, können Sie die HTML() Funktion

heißt

$("").text("Hi There!").html(); 

Will return '! Hallo dort' verwenden

Denken Sie daran, diese innerHTML- verwendet, so

$("<div><b>Foo</b></div>").html(); 

<b>Foo</b> 

Als Ergebnis zurückkehren Sie Ihren Code in einer umgebenden div oder span wickeln benötigen.

Verwandte Themen