0

我正在尝试读取 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>
4

3 回答 3

3

您可以创建一个元素并将其内容设置为您的 HTML。这将使您能够在其上运行getElementsByTagName()

var html = xmlhttp.responseText;

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

var ps = div.getElementsByTagName("p");
于 2013-07-16T17:40:39.877 回答
1

responseText是一个字符串。您需要“解析”它才能在其上调用 DOM 方法。

一种方法是制作一个“假” <div>,然后将字符串附加到它上面。

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

var ps = parse.getElementsByTagName("p");
于 2013-07-16T17:41:32.410 回答
-1

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

于 2013-07-16T17:38:30.437 回答