2013-09-25 150 views
1

给定一个包含整个页面的HTML的字符串,我只需要body的innerHTML。而不是自己解析HTML,如果我可以从字符串中创建一个元素,然后直接获取主体,似乎更容易。从字符串获取DOM

我发现了一些相关的东西,但我无法工作(我再也找不到问题了)。

xmlhttp = new XMLHttpRequest(); 
xmlhttp.onreadystatechange=function() 
{ 
    var ret = xmlhttp.responseText + ""; 

    if(xmlhttp.readyState==4 && xmlhttp.status==200) 
    { 
     alert(ret); 
    } 
} 
xmlhttp.open("GET", "http://url.php", false); 
xmlhttp.send(); 

现在我有这个ajax请求,但我只需要从返回的身体。

我试过document.createElement(ret).bodynew Element(ret).body但他们似乎没有工作。

回答

4
var helper = document.createElement("html"); 
helper.innerHTML = ret;   
body = helper.querySelector("body"); //Or getElementsByTagName("body")[0] 
+0

'ret.body'或'helper.body'? – Cruncher

+0

我在'helper.innerHTML = ret;'出现错误。 “无法设置innerHTML属性,此操作的目标元素无效。” – Cruncher

+0

@Cruncher谢谢,编辑 –

-1

你可以使用simple_html_dom要做到这一点,并获得使用PHP整个页面的HTML,然后得到的只是身体的内容,类似这样的

$html=file_get_html("url.php"); 
$body=$html->find("body"); 
$echo $body->plaintext