2010-02-23 7 views
9

Entschuldigung, wenn der Titel zu dunkel ist, D.Wie bekomme ich den inneren HTML-Code, einschließlich des Tags, mit jQuery?

Eigentlich ist das Problem, sagen wir, ich bin dieser Code.

<span id="spanIDxx" style="blah-blah"> 
    <tag1>code here </tag2> sample text 
    <tag2>code here </tag2> html aass hhddll 
    sample text 
</span> 

Jetzt, wenn ich den Code verwenden werde.

jQuery("#spanIDxx").html(); 

dann wird es zurückkehren nur die Innerhtml ohne <span id="spanIDxx" style="blah-blah">
aber ich etwas will, die die Innerhtml einschließlich das angegebene Element zurückkehren kann.

Antwort

11

Dies wird eine neue div erstellen und einen Klon von Ihrem Element zu diesem div anhängen. Das neue div wird nie in das DOM eingefügt, sodass es Ihre Seite nicht beeinflusst.

var theResult = $('<div />').append($("#spanIDxx").clone()).html(); 

alert(theResult); 

Wenn Sie dies häufig verwenden, und wollen nicht mit dem Hinzufügen noch ein weiteres Plugin, stören nur um es in eine Funktion machen:

function htmlInclusive(elem) { return $('<div />').append($(elem).clone()).html(); } 

alert(htmlInclusive("#spanIDxx")); 

Oder erweitern jQuery selbst:

$.fn.htmlInclusive = function() { return $('<div />').append($(this).clone()).html(); } 

alert($("#spanIDxx").htmlInclusive()); 
+0

Einige chap hat ein Plugin namens 'outerHTML' dies zu tun: http: //brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/. Jemand anderes erweitert das Plugin, um Ersatz zu ermöglichen: http://yelotofu.com/2008/08/jquery-outerhtml/ –

+0

groß +1, akzeptiert die Lösung :) –

1

Sie können die Knoten auf einen neuen leeren Knoten kopieren, fragen Sie nach neuen .parent() und dann seine .html()

1

Clone könnte Ihnen nützlich sein. Ich glaube nicht, dass du irgendetwas mit den Klonen machen musst.

Verwandte Themen