Как получить innerHtml, включая тег, используя jQuery? - PullRequest
9 голосов
/ 23 февраля 2010

Извините, если заголовок слишком неясен; D.

На самом деле проблема в том, допустим, я и есть этот код.

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

Теперь, если я буду использовать код.

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

тогда он вернет только innerHTML, исключая <span id="spanIDxx" style="blah-blah">
но я хочу что-то, что может вернуть innerHTML, включая указанный элемент.

Ответы [ 4 ]

11 голосов
/ 23 февраля 2010

Это создаст новый div и добавит клон вашего элемента к этому div. Новый div никогда не вставляется в DOM, поэтому он не влияет на вашу страницу.

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

alert( theResult );

Если вам нужно использовать это часто и вы не хотите добавлять еще один плагин, просто включите его в функцию:

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

alert( htmlInclusive("#spanIDxx") );

Или расширить JQuery самостоятельно:

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

alert( $("#spanIDxx").htmlInclusive() );
1 голос
/ 23 февраля 2010

Клон может быть полезным для вас. Я не верю, что вам действительно нужно что-то делать с клоном / с.

1 голос
/ 23 февраля 2010

Вы можете скопировать узел на новый пустой узел, запросить новый .parent () и затем его .html ()

0 голосов
/ 23 февраля 2010

Сам этим не пользовался, но похоже, что он может быть полезен:

http://yelotofu.com/2008/08/jquery-outerhtml/

демо здесь: http://yelotofu.com/labs/jquery/snippets/outerhtml/demo.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...