<%@ 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>百度提示框</title>
<style type="text/css">
#divkeywords{
border: solid 2px red;
width: 250px;
height: 25px;
}
#keywordid{
border: none;
outline: none;
font-size: 20px;
}
#divappend{
border: solid 2px red;
width: 250px;
border-top: none;
display: none;
}
.backcolor{
background: green;
}
</style>
<script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script>
<script type="text/javascript">
//当页面加载完成给页面添加键盘按下去就触发的事件
//event全局事件对象
$(function(){
$(document).keydown(function(event){
var eve = event||window.event;
//keyCode: 38-向上的箭头 40-向下的箭头 13-回车enter
//alert(eve.keyCode);
if(eve.keyCode==38){//背景颜色向上移动
//使input失去焦点
$("#keywordid").blur();
//判断divappend对象中是否有html
if($("#divappend").html()==""){
return;
}
//向上移动
//prevAll():查找当前元素之前所有的同辈元素
var varbg = $(".backcolor").prevAll().length;
//判断是否有背景颜色
if(varbg==0){
//删除背景颜色
$(".item").removeClass("backcolor");
//添加背景颜色 eq:同过下标来获取元素的对象
$(".item").eq($(".item").length-1).addClass("backcolor");
}else{
//删除背景颜色
$(".item").removeClass("backcolor");
//添加背景颜色
$(".item").eq(varbg-1).addClass("backcolor");
}
}else if(eve.keyCode==40){//背景颜色向下移动
//使input失去焦点
$("#keywordid").blur();
//判断divappend对象中是否有html
if($("#divappend").html()==""){
return;
}
//判断是否有背景颜色
if($(".item").hasClass("backcolor")){
//prevAll():查找当前元素之前所有的同辈元素
var varbg = $(".backcolor").prevAll().length;
//判断背景是否移动到最后一个元素
if(varbg==$(".item").length-1){
//删除背景颜色,再添加背景颜色
$(".item").removeClass("backcolor").eq(0).addClass("backcolor");
}else{
//删除背景颜色,再添加背景颜色
$(".item").removeClass("backcolor").eq(varbg+1).addClass("backcolor");
}
}else{
//删除背景颜色,再添加背景颜色
$(".item").removeClass("backcolor").eq(0).addClass("backcolor");
}
}else if(eve.keyCode==13){//回车--把带背景颜色的文本内容显示到input输入框中
//获取对象
$("#keywordid").val($(".backcolor").text());
//隐藏divappend,并且删除divappend里面的html
$("#divappend").hide().html("");
}
});
});
//当鼠标移动时触发的事件,给div添加背景颜色
function addcolor(obj){
//移除样式
$(".item").removeClass("backcolor");
//把当前对象添加样式
$(obj).addClass("backcolor");
//获取对象
$("#keywordid").val($(".backcolor").text());
//隐藏divappend,并且删除divappend里面的html
}
//移除div
function removediv(){
//隐藏divappend,并且删除divappend里面的html
$("#divappend").hide().html("");
}
//百度提示框
function baidusuggest() {
//获取divappend对象
var vardivappend = $("#divappend");
//1:获取输入框里面的内容发送给后台服务器查询相关数据
var varval = $("#keywordid").val();
var valtrim = $.trim(varval);//去掉输入框内容的首尾空格
if(valtrim.length>0){
//alert(valtrim+"--"+valtrim.length);
//用jquery发送ajax
$.post("BaiduSuggest",{keyword:valtrim},function(result){
//判断长度是否大于0
if(result.length>0){
//alert(result);
//把数组类型的字符串转成数组
var vararray = JSON.parse(result);
//声明一个htmls
var htmls = "";
//遍历数组获取元素的值
for (var i = 0; i < vararray.length; i++) {
if(i<5){
htmls += "<div class='item' οnmοuseenter='addcolor(this)' οnclick='removediv()' >"+vararray[i]+" </div>";
}
}
//先显示div,再给div里面添加html
vardivappend.show().html(htmls);
}else{
//alert("获取不到数据");
//隐藏divappend,并且删除divappend里面的html
vardivappend.hide().html("");
return;
}
});
}else{
//alert("空");
//隐藏divappend,并且删除divappend里面的html
vardivappend.hide().html("");
return;
}
}
</script>
</head>
<body>
<div id="div01">
<div id="divkeywords"><input type="text" name="keyword" id="keywordid" value="" οnkeyup="baidusuggest();"/> </div>
<div id="divappend">
<!-- <div>张三 </div>
<div>张三1 </div>
<div>张三2 </div>
<div>张三3 </div> -->
</div>
</div>
</body>
</html>
写一个百度提示框
1.导入jquery,
画框:显示文本,显示内容
2.设置样式:
border:solid 1px red ;
width:200px ;
height:23px ;
.backcolor{
background-color:red;
}
3.写一个输入框
<div>
<div id="keywordid" type="text" name="keywrod" οnkeyup="baidusuggest();">
</div>
4.下下拉框
<div id="divappend">
<div class='classdiv'>1111</div>
<div>1222</div>
</div>
5.function baidusuggest(){
//1.获取输入框的值
var varval = $("#keywordid").val();
//2.去掉空格
var valtrim = $.trim(varval);
//测试
if(vartrim.length>0){
alert(valtrim+"--"+valtrim.length());
}else{
alert("空");
}
}
6.servlet:
1.处理乱码
2.获取参数
3.判断
if(keyword!=null&&!"".equals(keyword)){
//创建集合list
//通过name like 查询学生表
"select * from t_student where name like ?"
//
ps.setString(1,"%"+name+"%");
//
}
7.处理细节:
查询处理就显示show(),然后隐藏hide(),删除就清空内容.html("");
获取数据显示就用html拼接的方式 html += "";
8.当网页加载完成给页添加一个键盘按下的触发事件用event
$(function (){
$(document).keydown(function(event){
//处理浏览器不兼容的问题
var eve = event||window.event;
//获取箭头的值 38向上 40向下
//背景向上动
if(eve.keycode==38){
//让input输入框失去焦点
//判断如果下拉框不为空再向下执行
//定义一个背景
//特殊情况:没有背景色就添加背景色给最后一个
//有背景色就添加向上处理给上一个添加背景色
//移除背景颜色
//光标到了哪里就给哪个div添加颜色
$(.classdiv).eq(索引).addClass();
//
//
//判断当前的背景颜色的上面有几个兄弟节点prevAll();
}
});
})
背景颜色下移动
if(eve.keycode==40){}
先失去焦点,否则就一直在获取焦点
1.判断是否有背景颜色,backcolor;hasClass("class类名");
有就判断 背景是否在最后一个元素
if(){}
按enter就表示选中的内容:
判断keycode==13:通过event获取
获取内容:通过类选择器获取对象的值
将值放在输入框中:输入框div对象.val(值);
隐藏下拉列表div并删除下拉的html
给鼠标添加滑动效果:onmouseenter:给每个下拉div添加
function addcolor(obj){}
记住:当前对象默认是js对象,需要转为jquery对象
先清除所有的背景色,再给指定对象添加背景
隐藏hide(),并删除内容html();
4.
记住 border : none ;去除边框
outline :none; 去除框线
input 默认会带有边框和框线
border-top:none;去除边框顶部的线
隐藏用display:none;
select下拉框的宽度不好控制就用div
onkeyup 键盘按下的时候就触发
去除输入框的首尾空格
eq==数组,获取元素,通过下标
对象.eq(index)
对象.prevAll();
先移除背景色再进行添加,否则就会给两个添加后
removeClass();
没有背景色就给最后一个添加颜色,通过带这个背景色的对象.prevAll().length判断
addClass添加样式,
获取HTML的值就用 对象.text(),input :val();
代码:
<%@ 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>百度提示框</title> <style type="text/css"> #divkeywords{ border: solid 2px red; width: 250px; height: 25px; } #keywordid{ border: none; outline: none; font-size: 20px; } #divappend{ border: solid 2px red; width: 250px; border-top: none; display: none; } .backcolor{ background: green; } </style> <script type="text/javascript" src="js/jquery-1.9.1.js" charset="utf-8"></script> <script type="text/javascript"> //当页面加载完成给页面添加键盘按下去就触发的事件 //event全局事件对象 $(function(){ $(document).keydown(function(event){ var eve = event||window.event; //keyCode: 38-向上的箭头 40-向下的箭头 13-回车enter //alert(eve.keyCode); if(eve.keyCode==38){//背景颜色向上移动 //使input失去焦点 $("#keywordid").blur(); //判断divappend对象中是否有html if($("#divappend").html()==""){ return; } //向上移动 //prevAll():查找当前元素之前所有的同辈元素 var varbg = $(".backcolor").prevAll().length; //判断是否有背景颜色 if(varbg==0){ //删除背景颜色 $(".item").removeClass("backcolor"); //添加背景颜色 eq:同过下标来获取元素的对象 $(".item").eq($(".item").length-1).addClass("backcolor"); }else{ //删除背景颜色 $(".item").removeClass("backcolor"); //添加背景颜色 $(".item").eq(varbg-1).addClass("backcolor"); } }else if(eve.keyCode==40){//背景颜色向下移动 //使input失去焦点 $("#keywordid").blur(); //判断divappend对象中是否有html if($("#divappend").html()==""){ return; } //判断是否有背景颜色 if($(".item").hasClass("backcolor")){ //prevAll():查找当前元素之前所有的同辈元素 var varbg = $(".backcolor").prevAll().length; //判断背景是否移动到最后一个元素 if(varbg==$(".item").length-1){ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(0).addClass("backcolor"); }else{ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(varbg+1).addClass("backcolor"); } }else{ //删除背景颜色,再添加背景颜色 $(".item").removeClass("backcolor").eq(0).addClass("backcolor"); } }else if(eve.keyCode==13){//回车--把带背景颜色的文本内容显示到input输入框中 //获取对象 $("#keywordid").val($(".backcolor").text()); //隐藏divappend,并且删除divappend里面的html $("#divappend").hide().html(""); } }); }); //当鼠标移动时触发的事件,给div添加背景颜色 function addcolor(obj){ //移除样式 $(".item").removeClass("backcolor"); //把当前对象添加样式 $(obj).addClass("backcolor"); //获取对象 $("#keywordid").val($(".backcolor").text()); //隐藏divappend,并且删除divappend里面的html } //移除div function removediv(){ //隐藏divappend,并且删除divappend里面的html $("#divappend").hide().html(""); } //百度提示框 function baidusuggest() { //获取divappend对象 var vardivappend = $("#divappend"); //1:获取输入框里面的内容发送给后台服务器查询相关数据 var varval = $("#keywordid").val(); var valtrim = $.trim(varval);//去掉输入框内容的首尾空格 if(valtrim.length>0){ //alert(valtrim+"--"+valtrim.length); //用jquery发送ajax $.post("BaiduSuggest",{keyword:valtrim},function(result){ //判断长度是否大于0 if(result.length>0){ //alert(result); //把数组类型的字符串转成数组 var vararray = JSON.parse(result); //声明一个htmls var htmls = ""; //遍历数组获取元素的值 for (var i = 0; i < vararray.length; i++) { if(i<5){ htmls += "<div class='item' οnmοuseenter='addcolor(this)' οnclick='removediv()' >"+vararray[i]+" </div>"; } } //先显示div,再给div里面添加html vardivappend.show().html(htmls); }else{ //alert("获取不到数据"); //隐藏divappend,并且删除divappend里面的html vardivappend.hide().html(""); return; } }); }else{ //alert("空"); //隐藏divappend,并且删除divappend里面的html vardivappend.hide().html(""); return; } } </script> </head> <body> <div id="div01"> <div id="divkeywords"><input type="text" name="keyword" id="keywordid" value="" οnkeyup="baidusuggest();"/> </div> <div id="divappend"> <!-- <div>张三 </div> <div>张三1 </div> <div>张三2 </div> <div>张三3 </div> --> </div> </div> </body> </html>