Как получить HTML, соответствующий текущему дереву DOM? - PullRequest
2 голосов
/ 22 января 2010

jQuery ("html"). Похоже, html () извлекает большую его часть, за исключением тега переноса.

DOM сильно модифицирован, поэтому оригинальный источник не так уж и полезен.

  • Это надежно?
  • Это хорошая идея, чтобы просто взять вывод jQuery и обернуть ... вокруг него? Я вижу здесь, по крайней мере, некоторые проблемы с типами документов и включением сценариев, которые не следует запускать повторно.
  • Есть ли лучший способ?

РЕДАКТИРОВАТЬ: jQuery (""). Append (jQuery ("html"). Clone ()). Html () почти работает, за исключением типа документа. Есть ли простой способ получить его?

РЕДАКТИРОВАТЬ 2: мне нужно в основном doctype, чтобы получить правильный режим quirk / almoststandards / standard. document.compatMode имеет половину, достаточно?

Ответы [ 4 ]

2 голосов
/ 22 января 2010

jQuery использует innerHTML для получения HTML. Вы не собираетесь получить точное состояние DOM, используя этот атрибут. Например, содержимое значений input или состояние поля select не останутся прежними, если вы не измените их должным образом перед вызовом innerHTML.

Что это за тег wrapping, о котором вы говорите? Для большинства из них innerHTML должен работать нормально.

Например, я использую этот код для состояния полей select и input.

// it's defaultValue so we can use innerHTML
$("#divContentInside input").each(function () {
    this.defaultValue = this.value;
});
// go through each select and replace
// it's selection so we can use innerHTML
$("#divContentInside select > option").each(function () {
    if (this.selected) {
        this.setAttribute("selected", true);
    } else {
        this.removeAttribute("selected");
    }
});

Я не нашел проблем с согласованностью состояния других элементов, но, вероятно, есть.

1 голос
/ 22 января 2010

Вы можете использовать стандартные команды DOM:

Чтобы получить innerHTML тега HTML

document.body.parentNode.innerHTML

Чтобы получить информацию о Doctype

document.body.parentNode.previousSibling;
0 голосов
/ 22 января 2010

http://brandonaaron.net/blog/2007/06/17/jquery-snippets-outerhtml/ реализация externalHTML для jquery.

Редактировать

Выполнение быстрого поиска появилось в параметре document.doctype, вот полная ссылка на него. Удален старый и теперь ненужный текст / код.

0 голосов
/ 22 января 2010

Вы пробовали $(document).html()

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