JavaScript / jQuery ile <html> etiketi HTML nasıl edinilir?


161

Kullanılması $('html').html()I içinde HTML alabilirsiniz <html>(etiketinde <head>, <body>vb.) Ancak <html>etiketin asıl HTML'sini nasıl alabilirim (özniteliklerle)?

Alternatif olarak, sayfanın tüm HTML'sini (doctype <html>vb. Dahil ) jQuery (veya düz eski JavaScript) ile almak mümkün müdür ?

Yanıtlar:


306

htmlÖğeyi yerel olarak almanın en basit yolu :

document.documentElement

İşte referans: https://developer.mozilla.org/en-US/docs/Web/API/Document.documentElement .

GÜNCELLEME: Öğeyi daha sonra htmlbir dize olarak almak için:

document.documentElement.outerHTML

1
documentElementTarayıcı uyumluluğu hakkında daha fazla bilgi için bu soruya da bakınız : stackoverflow.com/q/11391827/177710 .
Oliver

Ne sıklıkta html öğesine başvuruyorsunuz !? Performansın genellikle endişe verici olduğunu düşünmüyorum. Her neyse, bu aslında daha iyi bir cevap, ama ödülün ardından WAY'de geldi.
posit labs

42

Html DOM öğesini tamamen JS ile nasıl elde edeceğiniz aşağıda açıklanmıştır:

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

veya

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

Ve eğer öznitelikleri almak için jQuery kullanmak istiyorsanız ...

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

Bunun soruyu neden yanıtladığını açıklayabilirseniz, cevabınız çok daha iyi olurdu . Ayrıca, kodu vurgulayın ve {}düğmeyi tıklayın veya kod olarak işaretlemek için ctrl + k tuşlarına basın.
Ben

18

Diğer yanıtların bazılarına ek olarak, HTML öğesine aşağıdaki yollarla da erişebilirsiniz:

var htmlEl = document.body.parentNode;

Ardından, iç HTML içeriğini alabilirsiniz:

var inner = htmlEl.innerHTML;

Böyle yapmak marjinal olarak daha hızlı görünüyor . Bununla birlikte, sadece HTML öğesini alıyorsanız, biraz daha hızlıdocument.body.parentNode görünüyor .

HTML öğesine sahip olduktan sonra, getAttributeve setAttributeyöntemleriyle özniteliklerle uğraşabilirsiniz.

DOCTYPE için, bu sorudadocument.doctype ele alınan kullanabilirsiniz .


4
Not: Gövde belgede henüz mevcut değilse bu başarısız olur.
DataDink

3
Bu durumda, document.head.parentNodebir kafa elemanı varsa yine de çalışır.
mahemoff

15

JQuery'de:

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

Düz Javascript'te:

var html_string = document.documentElement.outerHTML

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.