Как получить HTML-тег <html> с помощью JavaScript/jQuery?
Используя $('html').html()
, я могу получить HTML в теге <html>
(<head>
, <body>
и т.д.). Но как я могу получить фактический HTML тега <html>
(с атрибутами)?
В качестве альтернативы, можно ли получить весь HTML-страницы (включая doctype, <html>
и т.д.) с помощью jQuery (или обычного старого JavaScript)?
Ответы
Ответ 1
Самый простой способ получить элемент html
изначально:
document.documentElement
Здесь ссылка: https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement.
UPDATE: затем захватить элемент html
в качестве строки, которую вы бы сделали:
document.documentElement.outerHTML
Ответ 2
Вот как получить элемент html DOM исключительно с помощью JS:
var htmlElement = document.getElementsByTagName("html")[0];
или
var htmlElement = document.querySelector("html");
И если вы хотите использовать jQuery для получения из него атрибутов...
$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);
Ответ 3
В дополнение к некоторым другим ответам вы также можете получить доступ к элементу HTML через:
var htmlEl = document.body.parentNode;
Затем вы можете получить внутренний HTML-контент:
var inner = htmlEl.innerHTML;
Таким образом, кажется, чуть быстрее. Однако, если вы просто получаете элемент HTML, document.body.parentNode
кажется довольно быстро.
После того, как у вас есть элемент HTML, вы можете использовать атрибуты с getAttribute
и setAttribute
.
Для DOCTYPE вы можете использовать document.doctype
, который был разработан в this вопрос.
Ответ 4
В jQuery:
var html_string = $('html').outerHTML()
В простом Javascript:
var html_string = document.documentElement.outerHTML
Ответ 5
если вы хотите получить атрибут HTML-элемента с jQuery, вы можете использовать .attr();
поэтому $('html').attr('someAttribute');
даст вам значение someAttribute
элемента html
http://api.jquery.com/attr/
Дополнительно:
здесь есть плагин jQuery: http://plugins.jquery.com/project/getAttributes
который позволяет вам получить все атрибуты из HTML-элемента