getElementsByTagName出错

时间:2013-07-16 17:32:23

标签: php html ajax

我正在尝试读取html文件,然后只在页面上显示某些部分。

我目前使用AJAX和requestData.js文件读取该文件。然后,我可以使用我创建的html变量提醒整个页面,并且工作正常。

然而,当我尝试获取所有<p>标签(或任何其他标签不起作用)时,它就会出现此错误。

  

TypeError:'undefined'不是函数(评估'html.getElementsByTagName(“div”)')

我在这里做错了什么?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>

<script type="text/javascript" language="JavaScript" src="requestData.js"></script>
<script type = "text/javascript">

    function refresh(xmlhttp){
        var html = xmlhttp.responseText;
        var ps = html.getElementsByTagName("p");
    }

</script>

</head>
<body>

</body>

<input type = "submit" onclick = "requestData('home.html', refresh)">

</html>

3 个答案:

答案 0 :(得分:3)

您可以创建元素并将其内容设置为HTML。这样您就可以在其上运行getElementsByTagName()

var html = xmlhttp.responseText;

var div = document.createElement('div');
div.innerHTML = html;

var ps = div.getElementsByTagName("p");

答案 1 :(得分:1)

responseText是一个字符串。你需要解析&#34;它能够在其上调用DOM方法。

一种方法是做一个假的&#34; <div>然后将字符串附加到它。

var html = xmlhttp.responseText;
var parse = document.createElement('div');
parse.innerHTML = html;

var ps = parse.getElementsByTagName("p");

答案 2 :(得分:-1)

html var只是字符串,使用jQuery Framework解析它:) 像这样jQuery(html).Find('p');