我编写此代码是为了在鼠标悬停图像后显示信息。网站上有三个图像,每个图像都有自己的文本信息:
var resOb = new XMLHttpsRequest ();
window.onload = function() {
document.getElementsByTagName("img").onmouseover =
function sndReq(0) {
}
document.getElementsByTagName("img").onmouseover =
function sndReq(1) {
}
document.getElementsByTagName("img").onmouseover =
function sndReq(2) {
}
}
function sndReq(i) {
switch (i) {
case 0:
resOb.open('get', 'info0.txt', true);
break;
case 1:
resOb.open('get', 'info1.txt', true);
break;
case 2:
resOb.open('get', 'info2.txt', true);
break;
resOb.onreadystatechange = function() {
handleResponse(i);
}
}
function handleResponse () {
document.getElementById("info0").innerHTML =
resOb.responseText;
}
可悲的是它不起作用,我无法找出问题所在。我需要一些帮助。
这里的HTML输出
<!DOCTYPE html>
<html lang="de">
<head>
<meta charset="utf-8">
<title>AJAX</title>
<meta name="viewport" content=
"width=device-width; initial-scale=1.0">
<link rel="stylesheet" type="text/css"
href="lib/css/stil.css" />
<script type="text/javascript"
src="lib/js/ajaxeinsendeaufgabe2.js"></script>
</head>
<body>
<h1>Zusatzinformationen</h1>
<table>
<tr>
<td><img class="img" src="img/b1.jpg" data-file="info0" /></td>
<td id="info0"></td>
</tr>
<tr>
<td><img class="img" src="img/b2.jpg" /></td>
<td id="info1"></td>
</tr>
<tr>
<td><img class="img" src="img/b3.jpg" /></td>
<td id="info2"></td>
</tr>
</table>
</body>
</html>
答案 0 :(得分:0)
您的句柄响应不使用i它具有硬编码“info0”。它应该是:
function handleResponse (i) {
document.getElementById("info"+i).innerHTML =
resOb.responseText;
}
你也不需要开关盒,你也可以这样做:
resOb.open('get','info'+i+'.txt',true);
这里是重构小提琴https://jsfiddle.net/pyr2447k/6/的链接 试着看看那个是否有效。