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.