Bagaimana cara mendapatkan tag HTML <html> dengan JavaScript / jQuery?


161

Menggunakan $('html').html()saya bisa mendapatkan HTML dalam <html>tag ( <head>, <body>, dll). Tetapi bagaimana saya bisa mendapatkan HTML <html>tag yang sebenarnya (dengan atribut)?

Atau, apakah mungkin untuk mendapatkan seluruh HTML halaman (termasuk doctype <html>,, dll.) Dengan jQuery (atau JavaScript lama biasa)?

Jawaban:


305

Cara paling sederhana untuk mendapatkan htmlelemen secara native adalah:

document.documentElement

Berikut rujukannya: https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement .

PEMBARUAN: Untuk kemudian mengambil htmlelemen sebagai string yang akan Anda lakukan:

document.documentElement.outerHTML

1
Lihat juga pertanyaan ini untuk info lebih lanjut tentang documentElementkompatibilitas browser: stackoverflow.com/q/11391827/177710 .
Oliver

Seberapa sering Anda mendapatkan referensi ke elemen html !? Saya tidak berpikir kinerja harus menjadi perhatian, secara umum. Bagaimanapun, ini sebenarnya jawaban yang lebih baik, tetapi datang di WAY setelah penghargaan.
posit labs

42

Ini adalah cara mendapatkan elemen DOM html murni dengan JS:

var htmlElement = document.getElementsByTagName("html")[0];

atau

var htmlElement = document.querySelector("html");

Dan jika Anda ingin menggunakan jQuery untuk mendapatkan atribut darinya ...

$(htmlElement).attr(INSERT-ATTRIBUTE-NAME);

Jawaban Anda akan jauh lebih baik jika Anda bisa menjelaskan mengapa ini menjawab pertanyaan itu. Selain itu, silakan sorot kode dan klik {}tombol atau tekan ctrl + k untuk menandainya sebagai kode.
Ben

18

Selain beberapa jawaban lain, Anda juga dapat mengakses elemen HTML melalui:

var htmlEl = document.body.parentNode;

Maka Anda bisa mendapatkan konten HTML bagian dalam:

var inner = htmlEl.innerHTML;

Melakukan hal ini sepertinya sedikit lebih cepat . Namun, jika Anda baru saja memperoleh elemen HTML, document.body.parentNodetampaknya akan sedikit lebih cepat .

Setelah Anda memiliki elemen HTML, Anda dapat mengacaukan atribut dengan getAttributedan setAttributemetode.

Untuk DOCTYPE, Anda dapat menggunakan document.doctype, yang dijabarkan dalam pertanyaan ini .


4
Sama seperti catatan: Ini akan gagal jika tubuh belum tersedia di dokumen.
DataDink

3
Dalam hal ini, document.head.parentNodemasih akan berfungsi jika ada elemen kepala.
mahemoff

15

Di jQuery:

var html_string = $('html').outerHTML()

Dalam Javascript biasa:

var html_string = document.documentElement.outerHTML

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.