训练大纲(第050天)
大家如果想快速有效的学习,思想核心是“以建立知识体系为核心”,具体方法是“守破离”。确保老师课堂上做的操作,反复练习直到熟练。
第99-100次(AJAX深入练习)
学习主题:AJAX深入练习
学习目标:
1 熟练使用ajax写功能
对应视频:
http://www.itbaizhan.cn/course/id/85.html
对应文档:
无
对应作业
01ajax之三级联动案例分析
1.1简答题
根据视频中的讲解,完成以下内容
- 视频中的三级联动案例的功能需求是什么
页面中有三个下拉框选项,分别为省、市、区/县下拉框,选择省,则市下拉框中出现对应的该省下的市信息,选择市,则区/县下拉框中出现对应的该市下面的区/县信息
- 视频中的需求分析的内容是
- 创建页面:页面中有三个下拉框,分别为省、市、区/县下拉框
- 页面加载成功发起ajax请求,请求省的信息,并将响应结果填充到省下拉框中
- 选择省触发一个新的js函数的执行,该函数中发起新的ajax请求,请求该省下的市信息,并将响应数据填充到市下拉框
- 选择市信息触发一个新的js函数的执行,该函数发起新的ajax请求,请求该市下的区/县信息,并将响应数据填充到区/县下拉框中。
02-ajax之三级联动数据库设计和实现
2.1 编程题
2.1.1 根据视频讲解完成三级联动数据库表设计。
地区id:areaid
地区名:areaname
地区上级:parentid
2.1.2 根据视频讲解完成三级联动案例的SQL语句设计。
查询所有的省信息
select * from area where parentid=0;
查询选择的省的市信息(假如山东省的areaid为110000)
select * from area where parentid=110000;
查询选择的省的市信息(假如山东省的济南市的areaid为110001)
select * from area where parentid=110001;
2.1.3 根据视频讲解将area.sql文件导入到数据库中。
![f5fa240ab2de1c0a2558c53054beadea.png](https://img-blog.csdnimg.cn/img_convert/f5fa240ab2de1c0a2558c53054beadea.png)
03 ajax之三级联动代码实现获取所有的省信息
3.1 上机练习
3.2.1 根据视频讲解完成前台jsp页面的创建。
<body style="background-color: gray">
<div style="width: 800px;margin: auto;margin-top:200px" >
省:<select name="" id="" style="height: 30px;width: 200px;"></select>
市:<select name="" id="" style="height: 30px;width: 200px;"></select>
区/县:<select name="" id="" style="height: 30px;width: 200px;"></select>
</div>
</body>
![e66ba61f11b40d8d9e93d2b417e01f2c.png](https://img-blog.csdnimg.cn/img_convert/e66ba61f11b40d8d9e93d2b417e01f2c.png)
3.2.2 在select.jsp中声明ajax代码请求省信息
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//发起ajax请求,请求所有的省的信息
$.get("area",{parentid:0},function(data){
//将响应的省数据填充到省下拉框中
alert(data);
});
})
</script>
3.2.3 完成请求省信息的后台功能,并能alert出请求的省信息。
![5d09b44f7a0a7737c6e1933f48bb17de.png](https://img-blog.csdnimg.cn/img_convert/5d09b44f7a0a7737c6e1933f48bb17de.png)
04ajax之三级联动实现省信息填充和市信息功能
4.1编程题
- 根据视频,将省信息填充到省下拉框中?
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//发起ajax请求,请求所有的省的信息
$.get("area",{parentid:0},function(data){
//使用eval方法将数据转换为js对象
eval("var areas="+data);
//将响应的省数据填充到省下拉框中
//获取下拉框对象
var sel = $("#pre");
//清空内容
sel.empty();
//遍历
for(var i=0;i<areas.length;i++){
//填充
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
});
})
</script>
![90ee1dafceebbbc8a2bf7047f4afb36b.png](https://img-blog.csdnimg.cn/img_convert/90ee1dafceebbbc8a2bf7047f4afb36b.png)
4.1.2 根据视频讲解完成市信息下拉框功能?
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//发起ajax请求,请求所有的省的信息
$.get("area",{parentid:0},function(data){
//使用eval方法将数据转换为js对象
eval("var areas="+data);
//将响应的省数据填充到省下拉框中
//获取下拉框对象
var sel = $("#pre");
//清空内容
sel.empty();
//遍历
for(var i=0;i<areas.length;i++){
//填充
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
});
//页面加载成功给省下拉框添加onchange事件
$("#pre").change(function(){
//获取当前选择的省的id
var areaid = $("#pre").val();
//发起ajax请求,请求当前省的市信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框对象
var sel = $("#city");
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
});
});
})
</script>
![fa7f8ee6837edbaebc5194704d165ecb.png](https://img-blog.csdnimg.cn/img_convert/fa7f8ee6837edbaebc5194704d165ecb.png)
05ajax之三级联动代码完整实现
5.1 简答题
5.1.1 根据视频讲解完成城镇信息下拉框功能?
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//发起ajax请求,请求所有的省的信息
$.get("area",{parentid:0},function(data){
//使用eval方法将数据转换为js对象
eval("var areas="+data);
//将响应的省数据填充到省下拉框中
//获取下拉框对象
var sel = $("#pre");
//清空内容
sel.empty();
//遍历
for(var i=0;i<areas.length;i++){
//填充
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
//触发省下拉框的change事件
$("#pre").trigger("change");
});
//页面加载成功给省下拉框添加onchange事件
$("#pre").change(function(){
//获取当前选择的省的id
var areaid = $("#pre").val();
//发起ajax请求,请求当前省的市信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框对象
var sel = $("#city");
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
//触发省的市下拉框的change事件
$("#city").trigger("change");
});
});
//页面加载成功,给市下拉框添加监听事件
$("#city").change(function(){
//获取当前选择的省的市的id
var areaid = $("#city").val();
//发起ajax请求,请求当前省的市的区县信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框的对象
var sel = $("#town");
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
});
});
});
</script>
![5a6926edf61d72a85d016f14ce549317.png](https://img-blog.csdnimg.cn/img_convert/5a6926edf61d72a85d016f14ce549317.png)
5.1.2 根据视频讲解,目前实现的三级联动中为什么选择省信息后,市信息为改变但是城镇信息还是不变?如何解决?并在代码实现。
分别给省和市添加自己的监听事件
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//发起ajax请求,请求所有的省的信息
$.get("area",{parentid:0},function(data){
//使用eval方法将数据转换为js对象
eval("var areas="+data);
//将响应的省数据填充到省下拉框中
//获取下拉框对象
var sel = $("#pre");
//清空内容
sel.empty();
//遍历
for(var i=0;i<areas.length;i++){
//填充
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
//触发省下拉框的change事件
$("#pre").trigger("change");
});
//页面加载成功给省下拉框添加onchange事件
$("#pre").change(function(){
//获取当前选择的省的id
var areaid = $("#pre").val();
//发起ajax请求,请求当前省的市信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框对象
var sel = $("#city");
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
//触发省的市下拉框的change事件
$("#city").trigger("change");
});
});
//页面加载成功,给市下拉框添加监听事件
$("#city").change(function(){
//获取当前选择的省的市的id
var areaid = $("#city").val();
//发起ajax请求,请求当前省的市的区县信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框的对象
var sel = $("#town");
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
});
});
});
</script>
5.1.3 根据视频讲解完成代码的封装
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<base href="<%=basePath%>">
<title>My JSP 'select.jsp' starting page</title>
<script type="text/javascript" src="js/j.js"></script>
<script type="text/javascript">
//页面加载成功请求省的信息
$(function(){
//封装公共的方法
function getData(areaid,sid){
//发起ajax请求,请求当前省的市信息
$.get("area",{parentid:areaid},function(data){
//使用eval方法将数据转成js对象
eval("var areas="+data);
//获取下拉框对象
var sel = $("#"+sid);
sel.empty();
for(var i=0;i<areas.length;i++){
sel.append("<option value='"+areas[i].areaid+"'>"+areas[i].areaname+"</option>");
}
//触发省的市下拉框的change事件
$("#"+sid).trigger("change");
});
}
//发起ajax请求,请求所有的省的信息
getData(0, "pre");
//页面加载成功给省下拉框添加onchange事件
$("#pre").change(function(){
//获取当前选择的省的id
var areaid = $("#pre").val();
getData(areaid, "city");
});
//页面加载成功,给市下拉框添加监听事件
$("#city").change(function(){
//获取当前选择的省的市的id
var areaid = $("#city").val();
getData(areaid, "town");
});
});
</script>
</head>
<body style="background-color: gray">
<div style="width: 800px;margin: auto;margin-top:200px" >
省:<select name="" id="pre" style="height: 30px;width: 200px;"></select>
市:<select name="" id="city" style="height: 30px;width: 200px;"></select>
区/县:<select name="" id="town" style="height: 30px;width: 200px;"></select>
</div>
</body>
</html>
06ajax之搜索框提示语功能需求和思路分析
6.1 简答题
6.1.1 视频中的功能需求是什么?
用户在搜索框中输入关键字,然后搜索框下出现下拉选项,提示关键字的提示语。用户可以使用鼠标进行提示语的选择,也可以使用键盘上下键来进行选择。
6.1.2 视频讲解的功能分析(思路)的内容是?
1.创建搜索界面(搜索框和提示语div和搜索按钮)
2.给搜索框添加onkeyup事件,键盘弹起时发送ajax请求,请求当前用户输入的信息对应的提示语数据
3.将提示语数据填充到搜索框下的div中
4.实现使用鼠标选择提示语
5.实现使用键盘的上下键选择提示语
6.实现鼠标和键盘的联动操作
7.将显示提示语的div进行隐藏,当有提示语的时候显示隐藏的div
07ajax之搜索框提示语功能数据库设计和实现
7.1 简答题
7.1.1 根据视频讲解完成提示语功能的数据库设计?
创建表(data):存储了常用的关键字数据
关键字编号:id
关键字数据:title
说明:remark
7.1.2 根据视频讲解完成提示语功能的SQL语句设计。
查询以用户当前搜索框开头的关键字
Select * from data where ‘a%’;
7.1.3 根据视频讲解完成数据库的实现。
##创建关键字词汇表
create table t_data(
id int(10) not null auto_increment,
title varchar(100) not null,
remark varchar(500),
primary key(id)
)
##添加测数据
insert into t_data values(default,'aaa','');
insert into t_data values(default,'aac','');
insert into t_data values(default,'acd','');
insert into t_data values(default,'acb','');
insert into t_data values(default,'bbb','');
insert into t_data values(default,'bba','');
insert into t_data values(default,'cad','');
insert into t_data values(default,'cac','');
insert into t_data values(default,'cab','');
select * from t_data;
![2a8dc491be29204485f8f1a4eda3dda1.png](https://img-blog.csdnimg.cn/img_convert/2a8dc491be29204485f8f1a4eda3dda1.png)
08-ajax之搜索框体提示语功能页面创建和键盘事件添加
8.1 编程题
8.1.1 根据视频完成提示语功能页面的创建。
<body>
<!-- 创建容器div将搜索框div和提示语div显示在一起 -->
<div id="container" style="width: 350px;margin: auto">
<!-- 搜索框div -->
<div id="sdiv" style="width: 400px;margin: auto;margin-top:200px">
<input type="text" name="search" id="search" value="" style="height: 30px;width: 300px;font-size: 20px"/>
<input type="button" value="搜索" style="height: 30px; width:60px"/>
</div>
<!-- 提示语div -->
<div id="dataDiv" style="border: solid 1px; width: 298px;height: 200px;border-top: none"></div>
</div>
</body>
![e4c471446e0ddbd060d51206d3926613.png](https://img-blog.csdnimg.cn/img_convert/e4c471446e0ddbd060d51206d3926613.png)
8.2.2完成键盘事件的添加。
<script type="text/javascript">
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//发起ajax请求,请求当前用户搜索框数据的提示语信息
});
});
</script>
09ajax之搜索框提示语功能后台逻辑实现
9.1 编程题
9.2.1 根据视频完成提示语功能后台代码的实现。
<script type="text/javascript">
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
alert(data);
});
});
});
</script>
![ec458d772d537357ed70587ae5a35562.png](https://img-blog.csdnimg.cn/img_convert/ec458d772d537357ed70587ae5a35562.png)
10ajax之搜索框提示语功能数据填充和键盘码判断
10.1编程题
10.1.1 根据视频,完成提示语数据填充到div中。
<script type="text/javascript">
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
});
});
});
</script>
![0d62bcb9f841b32f2205361f168192e4.png](https://img-blog.csdnimg.cn/img_convert/0d62bcb9f841b32f2205361f168192e4.png)
10.2.2 根据视频判断键盘码完善ajax代码。
<script type="text/javascript">
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取event对象
var eve=window.event;
//获取用户当前点击的键盘简单code值
var code = eve.keyCode;
//判断code值是否符合要求
if(code>=65 && code<=90){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
});
}
});
});
</script>
11ajax之搜索框提示语功能鼠标选择提示语
11.2 编程题
11.2.1 完成鼠标选择功能。
<script type="text/javascript">
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取event对象
var eve=window.event;
//获取用户当前点击的键盘简单code值
var code = eve.keyCode;
//判断code值是否符合要求
if(code>=65 && code<=90 || code==8){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//判断请求数据是否为空
if(sd==""){
return;
}
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
//给提示语添加选择效果
$("#dataDiv div").mouseover(function(){
//清空所有提示语div的背景颜色
$("#dataDiv div").css("background-color","");
//将当前选择的div背景颜色变成灰色
$(this).css("background-color","gray");
});
//给提示语div添加单击事件
$("#dataDiv div").click(function(){
//将当前选择的提示语填充到搜索框中
$("#search").val($(this).html());
//将提示语div隐藏
$("#dataDiv").css("display","none");
});
});
}
});
});
</script>
12ajax之搜索框提示语功能键盘下键功能实现
12.1 编程题
12.1.1 完成视频下键选择功能。
<script type="text/javascript">
//计数器
var count=-1;
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取event对象
var eve=window.event;
//获取用户当前点击的键盘简单code值
var code = eve.keyCode;
//判断code值是否符合要求
if(code>=65 && code<=90 || code==8){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//判断请求数据是否为空
if(sd==""){
return;
}
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//显示隐藏的div
dataDiv.css("display","");
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
//给提示语添加选择效果
$("#dataDiv div").mouseover(function(){
//清空所有提示语div的背景颜色
$("#dataDiv div").css("background-color","");
//将当前选择的div背景颜色变成灰色
$(this).css("background-color","gray");
});
//给提示语div添加单击事件
$("#dataDiv div").click(function(){
//将当前选择的提示语填充到搜索框中
$("#search").val($(this).html());
//将提示语div隐藏
$("#dataDiv").css("display","none");
});
});
}
//判断用户点击的是否是下键
if(code==40){
//判断计数器的值是否超出范围
count=count<$("#dataDiv div").length-1?++count:0;
//判断是否有提示语
if($("#dataDiv div").length>0){
//清空原有背景颜色
$("#dataDiv div").css("background","");
//给指定的div添加背景颜色
$("#dataDiv div:eq("+count+")").css("background-color","gray");
}
}
});
});
</script>
13ajax之搜索框提示语功能上键功能和键盘鼠标联动和延迟发送请求
13.2 编程题
13.2.1 完成键盘上键选择功能。
13.2.2 完成键盘鼠标联动选择功能
13.2.3 完成延迟发送请求功能
<script type="text/javascript">
//创建计数器
var count=-1;
//声明变量记录定时执行的编号
var id;
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(){
//获取event对象
var eve=window.event;
//获取用户当前点击的键盘简单code值
var code = eve.keyCode;
//判断code值是否符合要求
if(code>=65 && code<=90 || code==8){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//判断请求数据是否为空
if(sd==""){
return;
}
//清除之前的将要发送的请求
window.clearTimeout(id);
//延迟发送请求
id = window.setTimeout(function(){
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//显示隐藏的div
dataDiv.css("display","");
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
//给提示语添加选择效果
$("#dataDiv div").mouseover(function(){
//清空所有提示语div的背景颜色
$("#dataDiv div").css("background-color","");
//将当前选择的div背景颜色变成灰色
$(this).css("background-color","gray");
//键盘和鼠标的联动,将当前鼠标选择的div的角标赋值给计数器
count=$(this).index();
});
//给提示语div添加单击事件
$("#dataDiv div").click(function(){
//将当前选择的提示语填充到搜索框中
$("#search").val($(this).html());
//将提示语div隐藏
$("#dataDiv").css("display","none");
});
});
}, 1000);
}
//判断用户点击的是否是下键
if(code==40){
//判断计数器的值是否超出范围
count=count<$("#dataDiv div").length-1?++count:0;
//判断是否有提示语
if($("#dataDiv div").length>0){
//清空原有背景颜色
$("#dataDiv div").css("background","");
//给指定的div添加背景颜色
$("#dataDiv div:eq("+count+")").css("background-color","gray");
//将选择的提示语填充到搜索框中
$("#search").val($("#dataDiv div:eq("+count+")").html());
}
}
//判断用户点击的是否是上键
if(code==38){
//判断计数器的值是否超出范围
count=count>0?--count:$("#dataDiv div").length-1;
//判断是否有提示语
if($("#dataDiv div").length>0){
//清空原有背景颜色
$("#dataDiv div").css("background","");
//给指定的div添加背景颜色
$("#dataDiv div:eq("+count+")").css("background-color","gray");
//将选择的提示语填充到搜索框中
$("#search").val($("#dataDiv div:eq("+count+")").html());
}
}
});
});
</script>
14ajax之搜索框提示语功能大结局
14.2 编程题
14.2.1 根据视频完整实现提示语功能
<script type="text/javascript">
//创建计数器
var count=-1;
//声明变量记录定时执行的编号
var id;
//页面加载成功完成页面资源的初始化
$(function(){
//给搜索框添加键盘弹起事件
$("#search").keyup(function(event){
//声明正则表达式判断空格
var reg=/^s+$/g;
//获取event对象
var eve=window.event || event;
//获取用户当前点击的键盘简单code值
var code = eve.keyCode;
//判断code值是否符合要求
if(code>=65 && code<=90 || code==8 || code==32){
//获取当前用户搜索框中输入的内容
var sd=$("#search").val();
//判断请求数据是否为空
if(sd=="" || reg.test(sd)){
return;
}
//清除之前的将要发送的请求
window.clearTimeout(id);
//延迟发送请求
id = window.setTimeout(function(){
//发起ajax请求,请求当前用户搜索框数据的提示语信息
$.get("search",{sdata:sd},function(data){
//使用eval方法将数据转成js对象
eval("var data="+data);
//获取提示语div对象
var dataDiv=$("#dataDiv");
//清空原有内容
dataDiv.empty();
//显示隐藏的div
if(data.length>0){
dataDiv.css("display","");
}
//将提示语数据填充到提示语div中
for(var i=0;i<data.length;i++){
dataDiv.append("<div style='margin:5px'>"+data[i].title+"</div>");
}
//给提示语添加选择效果
$("#dataDiv div").mouseover(function(){
//清空所有提示语div的背景颜色
$("#dataDiv div").css("background-color","");
//将当前选择的div背景颜色变成灰色
$(this).css("background-color","gray");
//键盘和鼠标的联动,将当前鼠标选择的div的角标赋值给计数器
count=$(this).index();
});
//给提示语div添加单击事件
$("#dataDiv div").click(function(){
//将当前选择的提示语填充到搜索框中
$("#search").val($(this).html());
//将提示语div隐藏
$("#dataDiv").css("display","none");
});
});
}, 1000);
}
//判断用户点击的是否是下键
if(code==40){
//判断计数器的值是否超出范围
count=count<$("#dataDiv div").length-1?++count:0;
//判断是否有提示语
if($("#dataDiv div").length>0){
//清空原有背景颜色
$("#dataDiv div").css("background","");
//给指定的div添加背景颜色
$("#dataDiv div:eq("+count+")").css("background-color","gray");
//将选择的提示语填充到搜索框中
$("#search").val($("#dataDiv div:eq("+count+")").html());
}
}
//判断用户点击的是否是上键
if(code==38){
//判断计数器的值是否超出范围
count=count>0?--count:$("#dataDiv div").length-1;
//判断是否有提示语
if($("#dataDiv div").length>0){
//清空原有背景颜色
$("#dataDiv div").css("background","");
//给指定的div添加背景颜色
$("#dataDiv div:eq("+count+")").css("background-color","gray");
//将选择的提示语填充到搜索框中
$("#search").val($("#dataDiv div:eq("+count+")").html());
}
}
});
});
</script>
15ajax之整合项目删除功能修改
15.1 编程题
15.2.1 根据视频使用ajax完成jsp和Servlet整合项目的删除功能。
<td><div class="button-group"> <a class="button border-main" href="cateedit.html"><span class="icon-edit"></span> 修改</a> <a class="button border-red" href="javascript:void(0)" οnclick="del('${list.uid }')"><span class="icon-trash-o"></span> 删除</a> </div></td>
<script type="text/javascript">
function del(uid){
if(confirm("您确定要删除吗?")){
$.get("data",{method:"delUserInfo",uid:uid},function(data){
if(eval(data)){
alert("用户删除成功");
window.location.href="data?method=selUserInfo";
}
});
}
}
</script>
![e0df453e8740846eba3ec7802c84dffe.png](https://img-blog.csdnimg.cn/img_convert/e0df453e8740846eba3ec7802c84dffe.png)
![a64852c61823e81b66297dee4a13f1ab.png](https://img-blog.csdnimg.cn/img_convert/a64852c61823e81b66297dee4a13f1ab.png)
分享/讲解/扩展思考
点名提问从第一节课到最后一节课分别学到了什么,直到同学们把所有的知识点都说出来并且保证无误。