我正在尝试读取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>
答案 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');