簡體   English   中英

如何從 html 字符串中獲取 head 和 body 標簽作為字符串?

[英]How to get head and body tags as a string from html string?

嘿,我有一個 html 字符串,我無法從中獲取標簽。

我嘗試了很多東西,這里有一些:

var head = $("head",$(htmlString)).html();
var body = $("body",$(htmlString)).html();
var head = $("head",htmlString).html();
var body = $("body",htmlString).html();
var head = $("head",$(htmlString).html()).html();
var body = $("body",$(htmlString).html()).html();
var head = htmlString.match(/<head[^>]*>([^<]+)<\/head>/);
var body = htmlString.match(/<body[^>]*>([^<]+)<\/body>/);
var head = jQuery('<div/>').append(htmlString).find('head').html();
var body = jQuery('<div/>').append(htmlString).find('body').html();

除此之外還有許多其他嘗試。 當我嘗試將其登錄到控制台時,所有這些都返回“未定義”或“”或 jquery 對象。

誰能告訴我如何將 body 和 head 標簽作為字符串獲取?

首選 jQuery/JS 而不是正則表達式

試試下面的代碼:

var head = htmlString.match(/<head[^>]*>[\s\S]*<\/head>/gi);
var body = htmlString.match(/<body[^>]*>[\s\S]*<\/body>/gi);

由於您擁有格式良好的 HTML,您可以創建一個文檔並從中選擇節點:

var doc = (new DOMParser()).parseFromString(htmlstring,"text/html");
console.log(doc.head.outerHTML);
console.log(doc.body.outerHTML);

這是一個演示: http : //jsfiddle.net/X3Uq2/

在 Chrome 中,您不能使用"text/html"內容類型,因此您必須制作一個 XML 文檔並使用getElementsByTagName

var s = new XMLSerializer();
var doc = (new DOMParser()).parseFromString(data,"text/xml");
console.log(s.serializeToString(doc.getElementsByTagName("head")[0]));
console.log(s.serializeToString(doc.getElementsByTagName("body")[0]));

http://jsfiddle.net/X3Uq2/2/

您可以這樣使用 javascript slice方法:

 var html = '<!DOCTYPE html>'+ '<html>'+ '<head>' + '<meta name="viewport" content="width=device-width" /> '+ '<title></title>' + '</head>' + '<body>Some Text!</body>' + '</html>' var bEnd, bStart; bStart = html.indexOf("<body"); bEnd = html.indexOf("</body"); var body = html.slice(bStart, bEnd); console.log(body);

也許這可以幫助你

var head = jQuery('<div/>').append(htmlString).find('head').html();

var body = jQuery('<div/>').append(htmlString).find('body').html();

這真的很簡單:

JQuery: $(head)
原生js:document.head

如果您想獲取此標簽的 html:

在 JQuery 中: $(head).html();
原生js:document.head.innerHtml

您可以在這里找到不錯的 JQuery 參考: http ://visualjquery.com

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM