Как мне получить html на «#container», включая «#container», а не только то, что внутри него.
<div id="container">
<div id="one">test 1 </div>
<div id="two">test 2 </div>
<div id="three">test 3 </div>
<div id="four">test 4 </div>
</div>
У меня есть это, которое получает HTML внутри #container. он не включает сам элемент #container. Вот что я хочу сделать
var x = $('#container').html();
$('#save').val(x);
Проверьте http://jsfiddle.net/rzfPP/58/
javascript
jquery
пинка
источник
источник
Ответы:
Если вы поместите контейнер в фиктивный
P
тег, вы также получите контейнер HTML.Все, что вам нужно сделать, это
Проверьте рабочий пример на http://jsfiddle.net/rzfPP/68/
Чтобы
unwrap()
в<p>
теге , когда сделано, вы можете добавитьисточник
var x = $('#container').clone().wrap('<p/>').parent().html();
, Идея обертки великолепна и менее сложна, чем большинство предлагаемых решений.<p>
тег? Не будет ли<div>
больше смысла?ОБНОВЛЕНИЕ : теперь это поддерживается Firefox начиная с FireFox 11 (март 2012)
Как уже отмечали другие, это не будет работать в FireFox. Если вам нужно, чтобы он работал в FireFox, то вы можете взглянуть на ответ на этот вопрос: есть ли в jQuery какая-либо функция, похожая на html () или text (), но возвращающая все содержимое соответствующего компонента?
источник
Мне нравится использовать это;
источник
источник
Обновление: outerHTML теперь работает в Firefox, поэтому используйте другой ответ, если вам не требуется поддержка очень старых версий Firefox.
источник
Олди но голди ...
Так как пользователь запрашивает JQuery, я буду упрощать это:
Скрипка здесь
источник
с http://forum.jquery.com/topic/jquery-getting-html-and-the-container-element-12-1-2010
источник
Firefox не поддерживает externalHTML , поэтому вам нужно определить функцию, которая поможет его поддерживать:
Затем вы можете использовать externalHTML:
источник
источник
Простое решение с примером:
Переместите этот DIV в другой DIV с id = "other_div_id"
финиш
источник