一、一般写法和注意:

$(document).ready(function() {
	$('#id名').事件简写(function() {
		//事件处理代码
	});
});

二、选择器

\> : 子元素组合符 父元素 > 子元素 [] : 属性选择符 元素名[属性] ^= : 属性值中开头 $= : 属性值结尾 例:$(‘a[href$=.“pdf”]‘)

自定义选择符(注意:以0开始) :eq(index) :所选择的元素的第index+1个 :even :所选择的元素的偶数个 :odd :所选择的元素的奇数个 :nth-child() :以一开头 :contains(str) :所选的元素文本包含str字符串的

三、事件

简写的事件:

blur change click dblclick error focus keydown keypress keyup load mousedown mousemove mouseout mouseover mouseup resize scroll select submit unload

复合事件

1、toggle(单击1—单击2用于隐藏菜单)

toggle(function(){
	//第一次单击事件
	},
	function(){
	//第二次单击事件
	}

);

2、hover(鼠标略过元素)

hover(function(){
	//鼠标位于元素上
	},
	function(){
	//鼠标离开元素
	}

);

3、事件的传递

jquery的时间传递按照从里朝外的冒泡方式传递的 解决这个问题有时需要:

$('#外层元素的id').click(function(event){
	if(event.target==this){
		//这里写不会处理这个外层元素响应的事件
		//那么,内层元素的响应就不会响应
	}
});

4、事件委托

当多个内层元素要处理相同的事件时,可以在其最外层的元素写一个方法 那么未被拦截的元素将会被处理

例子:

$('#外层元素的id').click(function(event){
	if($(event.target).is('内层元素选择符表达式')){
		//这里写内层元素相似的方法,在外层统一处理
	}
});

5、事件委托的方法:.live() .die()

$('绑定的元素选择器').live('click',function(){
	//这里写方法,内部会自动检测(event.target==this)
})

6、移除事件绑定

给函数命名

var 函数名=function(event){

}

解绑事件

	$('选择符').unbind('事件名','函数名');

重新绑定函数:

	$('选择符').bind('事件名','函数名');

只运行一次函数

	$('选择符').one('事件名','函数名');

7、模拟用户操作

	$('选择符').trigger('事件名');

四、样式和动画

五、操作DOM

1、属性操作

//添加属性
$('选择符').attr({
	属性名: '属性值',
	属性名: function(index,oldValue) {
		//index:自动增
		//oldValue:上一个的值
		return '前键'+index;
	},
	属性名: function(){
		return '值'+$(this).text()+'值';
	}

});

//获得属性的值
var v = $().prop('属性名');

//修改属性的值
$().prop('属性名','值');

/*
注意:html与dom的区别
	如:
		checked在html中是:字符串
		checked在dom中是:bool值
*/

2、dom树的操作

插入

$('html元素').insertAfter('选择符'); //在元素'选择符'下面(外部)插入'html元素'
$('html元素').insertBefore('选择符'); //在元素'选择符'上面(外部)插入'html元素'
$('html元素').prependTo('选择符'); //在元素'选择符'内部最上面插入'html元素'
$('html元素').appendTo('选择符'); //在元素'选择符'内部最下面插入'html元素'

移动

$('需要被移动的元素选择符').dom树的插入函数('选择符');

包围现有元素

$("p").wrap("<div></div>"); //在所有p元素外用div包围

3、复制元素

$('选择符').clone().dom树的插入函数('选择符 ');

4、内容的setter和getter方法

//例:
$('选择符').clone().find('选择符').html('替换的值').end().dom树的插入函数('选择符');

$('选择符').html('替换标签内的文本');//替换元素的文本值
$('选择符').text(); //获得元素的文本值
$('选择符').text('字符串'); //替换元素的文本值(直接显示标签)
$('选择符').replaceAll('字符串'); //替换元素的文本值
$('选择符').replaceWith('字符串'); //替换元素的文本值

5、移除每个匹配的元素中的元素外部元素保留

$('选择符').empty();

6、移除每个匹配的元素中的元素包括外部元素

$('选择符').remove();

六、通过ajax发送数据(不刷新界面更新页面)

1、基于请求的加载数据

加载html片段

$('选择符').click(function() {
	$('选择符').load('url');
	return false;
});

获得json数据并处理

$('选择符').click(function() {
	$.getJSON('url',function(data){
		var html='';
		$.each(data,function(entryIndex,entry){
			…………
			html+=entry.; //处理值为字符串
			…………

			//处理值为数组或对象
			if(entry.){ //如果存在
				$each(entry.,function(lineIndex,line){
					……………
					html+=line.;
					………………

				});
			}

		});
		$('选择符').html(html);
	});
	return false;
});

动态获得js文件,并执行js函数

$('选择符').click(function() {
	$.getScript('js文件url');
	return false;
})

加载xml文件(也可以和json一样)

$('选择符').click(function() {
	$.get('xml文件的url',function(data){
		var html='';

		$(data).find('结点').each(function(){

			var $结点=$(this);
			$结点.attr('属性名'); //获得节点的属性
			$结点.text; //获得结点间的文本值

		});

		$('选择符').html(html);
	});
	return false;
});

2、向服务器传递数据

通过get方式获得数据

$('选择符').click(function(){
	var requirData={
										:
									}	;
	$.get('.php或jsp或.action等等',requirData,function(data){
			//对data进行处理,追加html或更改显示
	});

	return false;

});

通过post方式获得数据

$('选择符').click(function(){
	var requirData={
										:
									}	;
	$.post('.php或jsp或.action等等',requirData,function(data){
			//对data进行处理,追加html或更改显示
	});

	return false;

});

序列化表单

$('表单选择符(form)').submit(function(){
	var requirData=$(this).serialize();
	$.post('.php或jsp或.action等等',requirData,function(data){
			//对data进行处理,追加html或更改显示
	});

	return false;

});

4、为ajax请求提供不同的内容

使用渐进增强的原则

5、关注请求

加载反馈系统:

$('要插入的html文本')
	.insertBefore('要插入在...之前')
	.ajaxStart(function(){
		$(this).show();
	})
		.ajaxStop(function(){
			$(this).hide();
});

6、错误处理

使用连缀

.error(function(jqXHR){});

9、低级的ajax方法

$('').click(function(){
	$.ajax({
		url: '', //url地址
		type: '',	//请求地址
		data:{ //请求的数据

		},
		dataType: "json",//可不指定


		success: function(data) { //成功后的调用的函数(参数为返回的信息)

		},
		error: function(errorinfo)  {//成功后的调用的函数(参数为XMLHttpRequest)

		}

	})

});

10、解决get方式请求跨域:使用JSONP

$('').click(function(){
	$.ajax({
		url: '', //url地址
		type: '',	//请求地址
		dataType: 'jsonp',
		jsonp: 'callback',
		success: function(data) { //成功后的调用的函数(参数为返回的信息)

		},
		error: function(errorinfo)  {//成功后的调用的函数(参数为XMLHttpRequest)

		}

	})

});
/*
返回数据格式:
	callback的值(json字符串)
*/

11、XHR2(HTML5)提供跨域访问

在响应头添加:

"Access-Control-Allow-Origin"= "*" //允许的服务器
Access-Control-Allow-Methods: POST, GET, OPTIONS