2014-02-13 36 views
1

我在一個變量中有一個完整的html文檔,但我不知道如何獲得標題。嘗試下面的代碼,但它只適用於特定的div,我不知道爲什麼。JQuery如何獲得生成的html的<title>

//valid html 
var data='<!DOCTYPE html><html><head><meta charset="UTF-8" /><title>MyTitle</title><meta name="description" content="MyDEsc" /></head><body><div id="header">header content</div><div class="container" id="wrapper">Default body<div id="home">home</div><div id="project"><div>content</div><div>content</div><div>content</div></div></div></body></html>' 

console.log($(data).find('title').text()) //nothing 
console.log($('title', $(data)).text()) //nothing 
console.log('header :' + $('#header', $(data)).html()) //undefined 
console.log('header :' + $('#home', $(data)).html()) //expected value 
console.log('project :' + $('#project', $(data)).html()) //expected value 

演示在這裏:http://jsfiddle.net/22RLk/

回答

4

你的HTML,頭部和身體標籤被剝離出來,所以你最終得到的是元素的集合而不是完整的文檔。標題是這些元素之一。

console.log($(data).filter('title').text()) 

http://jsfiddle.net/22RLk/3/

如果你想創建一個文件,你可以使用

document.implementation.createHTMLDocument(data) 

create a javascript document Object
How to create Document objects with JavaScript

+0

有什麼辦法可以有一個完整的文檔? – Tib

0
$(document).find('title').text() 
$(document).find('title').html() 

嘗試這種方式

1

純JavaScript:

console.log('title :' + data.substr(data.indexOf('<title>') + 7,data.indexOf('</title>')-7-data.indexOf('<title>'))); 
相關問題