2010-03-04 20 views
5

Podczas korzystania z jQuery do dynamicznego budowania znaczników czasami przydatne staje się zwrócenie rzeczywistego kodu HTML, który generuje jako ciąg, a nie jako grono obiektów jQuery. Czy jest jakiś sposób na zrobienie tego? Na przykład tutaj:Czy istnieje sposób na uzyskanie danych wyjściowych jQuery * rzeczywisty znacznik *?

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

Chcę być w stanie wyodrębnić o jakieś tekstowe

"<strong>Hi there!</strong>" 

tak, że można buforować go zdalnie. Czy jest jakiś sposób na zrobienie tego?

Odpowiedz

1

Wystarczy wywołać .html(), aby uzyskać HTML z dowolnego elementu, w tym wygenerowanego. To jest z sesji narzędzia programistów Chrome:

> $("<div><span>blerg</span></div>") 
Object 
> $("<div><span>blerg</span></div>").html() 
<span>blerg</span> 

Możesz zobaczyć, pierwszy zwrócił obiekt, drugi zwraca tekst.

3

Możesz użyć wtyczki outerHTML do tego. Here is one:

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

Zastosowanie:

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

Tak, można użyć html function()

tj

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

Wrócimy! 'Cześć'

Należy pamiętać, że używa innerHTML, więc

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

powróci

<b>Foo</b> 

W rezultacie trzeba owinąć kod w okolicy div lub rozpiętości.

Powiązane problemy