Как получить содержимое HTML, включая родительский?

0

Я пытаюсь понять, как получить содержимое HTML, включая родительский селектор. Я знаю, что следующее получит мне содержимое HTML:

$obj.html();

(где $ obj - ссылка на мой объект DOM)

Но что, если я хочу содержимое HTML, включая родительский селектор? Например, допустим, у меня есть этот код:

<div id="sample" class="something">
  <div class="inner"></div>
</div>

Если я сделаю:

$('#sample').html();

...Я получу:

<div class="inner"></div>

Но я действительно хочу перенастроить это:

<div id="sample" class="something">
  <div class="inner"></div>
</div>

Есть идеи?

Теги:

2 ответа

3
Лучший ответ

Хотя это не стандарт - это работает почти везде.

Использовать Element.outerHTML

var el = $obj[0]; // get the HTML element from the jQuery object
el.outerHTML; // the HTML including the outside bits

(скрипка)

  • 0
    Звучит хорошо для меня - когда вы говорите, что это не стандарт, это надежно?
  • 0
    @ Андрей, я не могу сказать. Зная людей, вовлеченных в процесс принятия решений - я думаю, что в конечном итоге он может быть стандартизирован и, конечно, не будет удален из браузеров. На практике - это никуда не денется в ближайшее время - проблема заключается в неопределенном поведении в пограничных случаях в разных браузерах, но мне еще предстоит столкнуться с любыми пограничными случаями.
Показать ещё 1 комментарий
2

Пока он еще не полностью стандартизирован, Element.outerHTML работает в большинстве браузеров.

jsFiddle

document.querySelector('#sample').outerHTML;

Полиполки доступны, требуется более ранняя поддержка браузера:

Рекомендации

  • 0
    +1 за ссылки. Я забыл добавить их :) Кажется, что это (outerHTML) продвинулось немного с тех пор, как я проверял в последний раз.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню