老师帮忙看下,为什么点击按钮只显示单个数据
来源:2-8 自由编程
z晓龙
2019-07-25 16:28:15
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .btn{ width:33%; } .div1{ text-align: center; } </style> </head> <body> <input id="emp" class="btn" type="button" value="员工列表" /> <input id="job" class="btn" type="button" value="职位列表" /> <input id="department" class="btn" type="button" value="部门列表" /> <div id="container" class="div1"></div> <script type="text/javascript" src="js/jquery-3.4.1.js"></script> <script type="text/javascript"> // 1.创建HttpRequest对象 var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.发送Ajax请求 xmlhttp.open("GET" , "/ajax/employee" , true); xmlhttp.send(); // 3.处理服务器响应 document.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ var text = xmlhttp.responseText; console.log(text); var json = JSON.parse(text); console.log(json); var html = ""; for(var i=0;i<json.length;i++){ var news = json[i]; $("#emp").click(function(){ $(".div1").html(html + "<p>" + news.emp + "</p>"); }) $("#job").click(function(){ $(".div1").html(html + "<p>" + news.job + "</p>"); }) $("#department").click(function(){ $(".div1").html(html + "<p>" + news.department + "</p>"); }) } document.getElementById("container").innerHTML = html; } } </script> </body> </html>
2回答
1、首先,应该每次按按钮请求一次,而同学之前的是刷新一下,请求 一次,按钮不管用。
于是,老师把同学的代码做了如下修改,并且,同学之前的html应该是作为字符串拼起来的哦:
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>Insert title here</title> <style type="text/css"> .btn{ width:33%; } .div1{ text-align: center; } </style> </head> <body> <input id="emp" class="btn" type="button" value="员工列表" /> <input id="job" class="btn" type="button" value="职位列表" /> <input id="department" class="btn" type="button" value="部门列表" /> <div id="container" class="div1"></div> <script type="text/javascript" src="js/jquery-3.3.1.js"></script> <script type="text/javascript"> // 1.创建HttpRequest对象 $("#emp").click(function(){ var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.发送Ajax请求 xmlhttp.open("GET" , "/test04/employee" , true); xmlhttp.send(); // 3.处理服务器响应 xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ var text = xmlhttp.responseText; console.log(text); var json = JSON.parse(text); var html = ""; for(var i=0;i<json.length;i++){ var news = json[i]; html += ("<p>" + news.emp + "</p>"); } document.getElementById("container").innerHTML = html; } } }) $("#job").click(function(){ var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.发送Ajax请求 xmlhttp.open("GET" , "/test04/employee" , true); xmlhttp.send(); // 3.处理服务器响应 xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ var text = xmlhttp.responseText; var json = JSON.parse(text); var html = ""; for(var i=0;i<json.length;i++){ var news = json[i]; html += ("<p>" + news.job + "</p>"); } document.getElementById("container").innerHTML = html; } } }) $("#department").click(function(){ var xmlhttp; if(window.XMLHttpRequest){ xmlhttp = new XMLHttpRequest(); }else{ xmlhttp = new ActiveXObject("Microsoft.XMLHTTP"); } // 2.发送Ajax请求 xmlhttp.open("GET" , "/test04/employee" , true); xmlhttp.send(); // 3.处理服务器响应 xmlhttp.onreadystatechange = function(){ if(xmlhttp.readyState == 4 && xmlhttp.status == 200){ var text = xmlhttp.responseText; var json = JSON.parse(text); var html = ""; for(var i=0;i<json.length;i++){ var news = json[i]; alert html += ("<p>" + news.department + "</p>"); } document.getElementById("container").innerHTML = html; } } }) </script> </body> </html>
2、建议同学以后贴代码可以贴在我要回答中,不然代码会失去格式哟。
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
好帮手慕柯南
2019-07-25
同学你好!同学这样写可以出来数据吗?如果可以同学将for循环去掉,按以下方式书写测试一下:
如果不能够解决,建议同学将servlet的代码也贴一下。
如果我的回答解决了你的疑惑,请采纳,祝学习愉快~
相似问题
回答 1
回答 1