设置获得的标签体、动态绑定事件以及Ajax

前端之家收集整理的这篇文章主要介绍了设置获得的标签体、动态绑定事件以及Ajax前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

前言

主要谈谈Ajax以及jQuery对Ajax的支持

Ajax(Asynchronous javascript and xml)以异步地方式实现局部HTML的刷新。创建交互式web应用程序而无需牺牲浏览器兼容性的流行方法

正文

设置获得的标签

动态绑定事件

方式一

方式二

例子

示例二//当选中的二级菜单为无的时候,使第三级菜单的文本框不可编辑



示例三 :在修改页面,保持一级菜单不可变,二级菜单的默认值为数据库的值;当选中的二级菜单为无的时候,使第三级菜单的文本框不可编辑

1.对应的js
2.例子三对应的jsp







例子四:从显示列表中,获取原先设置在单选按钮的值




Ajax

1.Ajax是一种在2005年由Google推广开来的编程模式,是一种使用现有标准的新方法通过Ajax,可以创建更好、更快以及更友好的web应用程序。

2.Ajax基于javascript和HTTP请求

3.。通过Ajax您的javascript可以使用javascript的xmlHttpRequest对象来直接与服务器进行通信。通过这个对象,您的javascript可在不重新加载页面的情况与web服务器交换数据。

4.Ajax在浏览器与web服务器之间使用异步数据传输,这样可使网页从服务器请求少量的信息,而非整个页面


1.ajax


synchronous javascript and xml,为解决传统的web中,"提交--等待---提交"的模式而产生的 技术。其本质就是用javascript获取浏览器里面的一个特殊的内置对象(XmlHttpRequest),给服务器
异步发送请求,服务器会返回xml和文本数据给XmlHttpRequest,然后,通过javascript调用 XmlHttpRequest对象中数据更新页面,在整个过程中,页面无刷新。


2.ajax编程


step1 获取XmlHttpRequest对象
在ie中获取和其他的浏览器不一样,其他浏览器都是通过new XMLHttpRequest()来获取,ie 中是这样来获取 new ActiveXObject()。
function getXmlHttpRequest(){
var xmlHttpRequest=null;
if((typeof XMLHttpRequest)!='undefined'){
xmlHttpRequest=new XMLHttpRequest();
}else{
xmlHttpRequest=new ActiveXObject("Microsoft.XMLHttp");
}
return xmlHttpRequest;
}

step2 使用XmlHttpRequest发送请求
1)发送get请求
var url="some.do?name=zs";
xhr.open("get",url,true);
get:请求的方式
url:请求的地址,可以接上参数
true:异步请求
//注册监听器
xhr.onreadystatechange=f1;
//发送请求,真正的发送请求
xhr.send(null);

2)发送post请求
var url="some.do";
xhr.open("post",true);
//设置消息头
xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xhr.onreadystatechange=f1;
xhr.send("name=zs");
step3 服务器处理请求,返回响应
step4 在监听器处理服务器的响应
function f1(){
//处理相关的代码
}
xhr.onreadystatechange=f1;
xhr.onreadystatechange=function(){
if(xhr.readyState==4){
//获取文本数据
var txt=xhr.responseText;
//获取XML DOM对象
var xml=xhr.responseXml;
// dom 操作 更新页面数据
}
}

例子:检查用户是否可用

例子一,异步地情况

1.jsp页面

注:jQuery对Ajax的支持

2.servelet

例子二:同步的情况
jsp页面
Servlet代码
<div></div>


3.XmlHttpRequest对象


readyState属性XmlHttpRequest与服务器通讯的状态。
0(创建完毕) :XmlHttpRequest对象已经创建好,但没有调用open方法
1(初始化):XmlHttpRequest没有调用send()方法
2(发送):XmlHttpRequest开始发送数据给服务器。
3(获取数据):XmlHttpRequest,正获取服务器返回的数据
4(获取数据完毕):此时,可以通过XmlHttpRequest获得服务器返回的所有数据。


reponseText属性:服务器返回的文本。
responseXML属性:服务器返回的xml数据。
onreadystatechange属性:用来设置回调函数,即处理服务器返回的数据。
status属性:服务器返回的状态码,(200,500,404)



4.缓存问题


在ie浏览器中,如果请求是get方式的请求,ie浏览器会将 请求的数据缓存起来,如果下次访问,地址没变,ie浏览器 就不会发送真正的请求,会将缓存的数据显示用户
解决方式:
1.可以在地址后面加上一个随机数。
2.使用post方式发送请求。



5.编码问题


1).在浏览器中,如果请求方式post,浏览器是会utf-8对数据进行编码。
2).在浏览器中,如果请求方式get,ie使用的"gbk/gb2312" 对中文进行编码,
firefox使用utf-8。


解决编码问题:
step1. 修改tomca中的server.xml .
添加URIEcoding="utf-8",
对get请求使用utf-8进行编码
step2. 对请求的地址使用 encodeURI()函数
对地址中中文使用utf-8编码



6.prototype


$(id) : document.getElementById(id);
$F(id): document.getElementById(id).value;
$(id1,id2.....) 获取多个对象,返回一个数组
evalJSON:将符合JSON格式的字符串,转换成JS对象。


7.JSON


javascript tonation object,是一种轻量级的数据交换的格式, 主要用来在服务器和js之间交换数据。


1).JSON中表示对象
a.表示一个对象
var obj={'属性':'属性值','属性':'属性值','属性':'属性值'....}
属性加上引号。
属性值如果是字符串要加上引号。
属性值的类型:string,number,null、object、boolean
b.表示一个数组
var arr=[{},{},{}]
2).将java对象转换成JSON格式的字符串
a.转换一个对象
JSONObject jobj=JSONObject.fromObject(obj);
jobj.toString();
b.转换数组或集合
JSONArray arr=JSONArray.fromObject(stus);
arr.toString();


注册页面检查用户是否可用和城市下拉框的级联

1.WebRoob目录下的注册页面regist.jsp

2.WEB-INF 目录下的web.xml
3.lib目录下的jar包名称

json-lib-2.2.3-jdk15.jar

4.src目录下得实体类Option.java

5.src目录下的Servlet

ActionServlet.java

jQuery对于Ajax的支持

$.get(url,回调函数,数据类型);

$.post(url,数据,回调函数,数据类型);

传递json数据

json={属性名:属性值,属性名:属性值};

例子:下拉框的级联

jsp页面

Servlet代码

注:图层的设置

样式:z-index:正数;//500为分界线 设置图层

js对象:div.style.zindex=正数

mybg.style.filter='"Alpha(opacity=30)";//设置透明度

mybg.style.overflow='hidden';

总结

知识回顾

JQuery 是一种js的框架
类似的框架 ExtJS
框架:程序代码的一种有机组合,是程序开发过程中的一种半成品
依赖库:jquery-1.4.3.js
语法:
$( )

选择器
基本选择器

id选择器
$("#id值")

标签选择器
$("标签名称")

Class选择器
$(".class值")

群组选择器
$("标签名称1,标签名称2");

包含选择器
$("标签名称1 标签名称2");

表单选择器
$(":input") 选出所有的input标签
:text 选出input标签中type为text的所有标签
:password
:button
:radio
:reset
:checkBox
:hidden
:submit
:image
:file

条件限定选择器
基本条件限定
:first
:last
:lt(下标)
:gt(下标)
:odd 奇数,下标从0开始
:even 偶数,下标从0开始
:eq(下标)
:not(选择器) 取反,去除选择器中选中的

内容限定
:contains(字符) 选中含有某个字符的标签
:parent 是否含有子标签
:empty
:has(选择器) 选中含有某个子标签的父标签

属性限定
[属性名称] 选出含有此属性的所有标签
[属性名=属性值]

可见性限定
:visible 选出可见的
:hidden 选出隐藏的

选中限定
:checked
:selected

标签的限定
:first-child
:last-child
:nth-child(表达式)


DOM
获取标签
$(选择器);
创建标签对象
$("标签"); 任何JQuery API返回的都是JQuery对象
插入标签
标签.append("子标签") 追加子标签
标签.prepend("子标签") 在最前面插入子标签
标签.before("标签");
标签.after("标签");
标签.appendTo("父标签选择器") 将子标签追加到对应的父标签
删除标签
标签.remove(选择器) 删除特定标签
标签.remove() 删除标签
标签.empty() 删除所有内容
获得添加属性
属性值 = 标签.attr(属性名)
标签.attr("属性名","属性值")
标签.attr({"属性名","属性值","属性名","属性值"});
改变样式
标签.css("样式属性名称","样式值")
标签.css({样式属性名称:"样式值",样式属性名称:"样式值"});
标签.addClass("class值");
标签.removeClass("class选择器的值");
动画效果
show(fast/slow/数字);
hide();

fadeIn(fast/slow/数字); 淡入淡出
fadeOut();
设置获得标签
var xx = 标签.html()
标签.html("内容")
var val =标签.text()
标签.text("文本");

动态绑定事件
1.$(document).ready(function事件); HTML文档加载完成之后执行Ready中绑定的事件

$(document).ready(function(){
//获得事件发生的标签
$("#span2").bind("mouSEOver",function(){

alert("hello");
});

});

$(document).ready(function(){

$("#span2").mouSEOver(function(){
alert("aaaaa");
});
});


2.$(function(){
function事件
});


$(function(){

$("#span2").mouSEOver(function(){

alert("aaa");
});

});

JQuery对于Ajax的支持
$.get(url,回调函数,数据类型)
$.post(url,数据,数据类型)
$.ajax();


$(function(){

$(":text:first").blur(function(){
var val = $(":text:first").attr("value");
var url = "http://localhost:8899/helloJSP129/as?name="+val;
$.get(url,function(data){
$("#span1").html(data);
});
//$.post(url,{ name: "John",time: "2pm" } );
});

});

传递Json数据
json = {属性名:属性值,属性名:属性值}
$(function(){
$("select:first").change(function(){
var val = $("select option:selected").attr("value");
$.get("http://localhost:8899/helloJSP129/js?country="+val,function(data){ //将json字符串转成json对象,获得json对象数组 var jsons = eval("("+data+")"); //获得最后一个select,将jquery对象转换成js对象 //var sel = $("select:last").get(0); var sel = $("select:last"); sel.empty(); for(var i=0;i<jsons.length;i++){ sel.append("<option value='"+jsons[i].id+"'>"+jsons[i].name+"</option>"); } }); }); });

猜你在找的Ajax相关文章