jQuery

复习jQuery基本使用和选择器
重点内容:
jQuery介绍:
jQuery是别人封装好的一个js库,免费开源易用,提供了我们开发中常用到的操作DOM的API,解决了我们使用js操作DOM常遇到的一些问题(兼容性、繁琐等),并且统一的入口,简化我们的操作,让我们更专注于业务!
jQuery的特点:
兼容性好、强大的jQuery选择器、统一的入口降低了学习门槛、write less,do more,隐式迭代、链式编程
jQuery基本使用:(重点)
引包、入口函数、功能实现代码(事件处理)

// 入口函数
$(document).ready(function(){
// 获取到id属性为btnShow的元素
$(“#btnShow”).click(function(){
// 获取到所有的div,并让这些div展示出来
$(“div”).show();
});
});
jQuery入口函数:(重点)
// 方式一
$(document).ready(function(){});
// 方式二
$(function(){ });
jQuery对象和DOM对象的相互转换(难点 理解)
jQuery对象-> DOM对象:$(selector)[0]
DOM对象-> jQuery对象:$(domObject)

jQuery选择器(重点)

使用jQuery操作DOM
为什么要使用jQuery操作DOM
对比JS操作DOM和jQuery操作DOM

使用jQuery的方式来操作DOM更加的简介,方便,统一的调用方式方便我们学习,降低来我们的学习成本。
重点内容
样式和类操作
jQuery动画
节点操作
表单值、属性和内容 html()

样式操作
样式属性操作 .css()
作用:设置或获取元素的样式属性值
1 设置样式属性操作:
a设置单个样式:
// 第一个参数表示:样式属性名称
// 第二个参数表示:样式属性值
$(selector).css(“color”, “red”);
b设置多个样式:(也可以设置单个)
// 参数为 {}(对象)
$(selector).css({“color”: “red”, “font-size”: “30px”});

2获取样式属性操作:
// 参数表示要获取的 样式属性名称
$(selector).css(“font-size”);
此时,会返回”font-size”样式属性对应的值。
类操作
添加类样式:
addClass(className) 为指定元素添加类className
$(selector).addClass(“liItem”);
注意:此处类名不带点,所有类操作的方法类名都不带点
移除类样式:
removeClass(className) 为指定元素移除类 className
$(selector).removeClass(“liItem”);
$(selector).removeClass(); 不指定参数,表示移除被选中元素的所有类

判断有没有类样式:
hasClass(calssName) 判断指定元素是否包含类 className
$(selector).hasClass(“liItem”);
此时,会返回true或false

切换类样式:
toggleClass(className) 为指定元素切换类 className,该元素有类则移除,没有指定类则添加。
$(selector).toggleClass(“liItem”);

注意点:
操作类样式的时候,所有的类名,都不带点(.)
经验:
1 操作的样式非常少,那么可以通过.css()这个 方法来操作
2 操作的样式很多,那么要通过使用类的方式来操作

    3 如果考虑以后维护方便(把CSS从js中分离出来)的话,推荐使用类的方式来操作。类比CSS书写位置(把css从html中分离出来)

前面内容特色总结:简约、“粗暴”、干净利落、直截了当
案例:图片京东Table栏
jQuery动画是什么?
jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。
隐藏显示动画
1 show方法
作用:让匹配的元素展示出来

// 用法一:
// 参数为数值类型,表示:执行动画时长
/* 单位为:毫秒(ms),参数2000即2秒钟显示完毕 */
$(selector).show(2000);

// 用法二:
// 参数为字符串类型,是jQuery预设的值,共有三个,分别是:slow、normal、fast
/* 跟用法一的对应关系为: /
/
slow:600ms、normal:400ms、fast:200ms */
$(selector).show(“slow”);

// 用法三:
// 参数一可以是数值类型或者字符串类型
// 参数二表示:动画执行完后立即执行的回调函数
$(selector).show(2000, function() {});

// 用法四:
// 不带参数,作用等同于 css(“display”, ”block”)
/* 注意:此时没有动画效果 */
$(selector).show();

注意:
jQuery预设的三组动画效果的语法几乎一致:参数可以有两个,第一个是动画的执行时长,第二个是动画执行完成后的回调函数。
第一个参数是:可以是指定字符或者毫秒数

2 hide方法
作用:让匹配元素隐藏掉
用法参考show方法
$(selector).hide(1000); // 1000表示什么?
$(selector).hide(“slow”);
$(selector).hide(1000, function(){});
$(selector).hide();

滑入滑出动画
1滑入动画效果(联想:生活中的卷帘门)
作用:让元素以下拉动画效果展示出来
$(selector).slideDown(speed,callback);

注意:省略参数或者传入不合法的字符串,那么则使用默认值:400毫秒(同样适用于fadeIn/slideDown/slideUp)
$(selector).slideDown();

2 滑出动画效果
作用:让元素以上拉动画效果隐藏起来
$(selector).slideUp(speed,callback);

3滑入滑出切换动画效果
$(selector).slideToggle(speed,callback);
参数等同与1.5.1 隐藏和显示
淡入淡出动画
1 淡入动画效果
作用:让元素以淡淡的进入视线的方式展示出来
$(selector).fadeIn(speed, callback);
2 淡出动画效果
作用:让元素以渐渐消失的方式隐藏起来
$(selector).fadeOut(1000);
3淡入淡出切换动画效果
作用:通过改变透明度,切换匹配元素的显示或隐藏状态
$(selector).fadeToggle('fast',function(){});
参数等同与1.5.1 隐藏和显示

4改变透明度到某个值
与淡入淡出的区别:淡入淡出只能控制元素的不透明度从 完全不透明 到完全透明;而fadeTo可以指定元素不透明度的具体值。并且时间参数是必需的!
作用:调节匹配元素的不透明度
// 用法有别于其他动画效果
// 第一个参数表示:时长
// 第二个参数表示:不透明度值,取值范围:0-1
$(selector).fadeTo(1000, .5); // 0全透,1全不透

// 第一个参数为0,此时作用相当于:.css(“opacity”, .5);
$(selector).fadeTo(0, .5);

jQuery提供的动画使用方法总结:

有规律的体现:
jQuery提供的这几个动画效果控制的CSS属性包括:高度、宽度、不透明度。{height:400px; width:300px; opacity:.4;}
这三个CSS属性的共性是:属性值只有一个,并且这个值是数值(去掉单位后)。

自定义动画
注意:所有能够执行动画的属性必须只有一个数字类型的值。
比如:要改变字体大小,要使用:fontSize(font-size),不要使用:font

动画支持的属性:
http://www.w3school.com.cn/jquery/effect_animate.asp

作用:执行一组CSS属性的自定义动画
// 第一个参数表示:要执行动画的CSS属性(必选)
// 第二个参数表示:执行动画时长(可选)
// 第三个参数表示:动画执行完后立即执行的回调函数(可选)
$(selector).animate({params},speed,callback);

停止动画
stop()
作用:停止当前正在执行的动画
为什么要停止动画?
如果一个以上的动画方法在同一个元素上调用,那么对这个元素来说,后面的动画将被放到效果队列中。这样就形成了动画队列。(联想:排队进站)
动画队列里面的动画不会执行,直到第一个动画执行完成。
// 第一个参数表示是否清空所有的后续动画
// 第二个参数表示是否立即执行完当前正在执行的动画
$(selector).stop(clearQueue,jumpToEnd);

解释:
当调用stop()方法后,队列里面的下一个动画将会立即开始。但是,如果参数clearQueue被设置为true,那么队列面剩余的动画就被删除了,并且永远也不会执行。
如果参数jumpToEnd被设置为true,那么当前动画会停止,但是参与动画的每一个CSS属性将被立即设置为它们的目标值。比如:slideUp()方法,那么元素会立即隐藏掉。如果存在回调函数,那么回调函数也会立即执行。

注意:如果元素动画还没有执行完,此时调用sotp()方法,那么动画将会停止。并且动画没有执行完成,那么回调函数也不会被执行。

常用方式:
$(selector).stop();

jQuery节点操作
动态创建元素
// $()函数的另外一个作用:动态创建元素
var $spanNode = $(“我是一个span元素”);

添加元素
在元素的最后一个子元素后面追加元素:
append()(重点)
作用:在被选元素内部的最后一个子元素(或内容)后面插入内容(存在或者创建出来的元素都可以)
如果是页面中存在的元素,那么调用append()后,会把这个元素放到相应的目标元素里面去;但是,原来的这个元素,就不存在了。
如果是给多个目标追加元素,那么方法的内部会复制多份这个元素,然后追加到多个目标里面去。
常用参数:htmlString 或者 jQuery对象

// 在$(selector)中追加$node
$(selector).append($node);
// 在$(selector)中追加div元素,参数为htmlString
$(selector).append('

');

不常用操作:(用法跟append()方法基本一致)
1 appendTo()
作用:同append(),区别是:把$(selector)追加到node中去
$(selector).appendTo(node);

2 prepend()
作用:在元素的第一个子元素前面追加内容或节点
$(selector).prepend(node);

3 after()
作用:在被选元素之后,作为兄弟元素插入内容或节点
$(selector).after(node);

4 before()
作用:在被选元素之前,作为兄弟元素插入内容或节点
$(selector).before(node);
html创建元素(推荐使用,重点)
作用:设置或返回所选元素的html内容(包括 HTML 标记)
设置内容的时候,如果是html标记,会动态创建元素,此时作用跟js里面的 innerHTML属性相同
// 动态创建元素
$(selector).html(‘传智播客’);
// 获取html内容
$(selector).html();
案例:创建元素和全选反选
清空元素
// 清空指定元素的所有子元素(光杆司令)
// 没有参数
$(selector).empty();
$(selector).html(“”);
// “自杀” 把自己(包括所有内部元素)从文档中删除掉
$(selector).remove();

复制元素
作用:复制匹配的元素
// 复制$(selector)所匹配到的元素
// 返回值为复制的新元素
$(selector).clone();

总结:
推荐使用html(“”)方法来创建元素或者html(“”)清空元素
操作form表单
属性操作
设置属性:
// 第一个参数表示:要设置的属性名称
// 第二个参数表示:改属性名称对应的值
$(selector).attr(“title”, “传智播客”);

获取属性:
// 参数为:要获取的属性的名称,改操作会返回指定属性对应的值
$(selector).attr(“title”);
此时,返回指定属性的值

移除属性:
// 参数为:要移除的属性的名称
$(selector).removeAttr(“title”);

注意:checked、selected、disabled要使用.prop()方法。
prop方法通常用来影响DOM元素的动态状态,而不是改变的HTML属性。例如:input和button的disabled特性,以及checkbox的checked特性。
细节参考:http://api.jquery.com/prop/

值和内容
val()方法:
作用:设置或返回表单元素的值,例如:input,select,textarea的值
// 获取匹配元素的值,只匹配第一个元素
$(selector).val();
// 设置所有匹配到的元素的值
$(selector).val(“具体值”);

text() 方法:
作用:设置或获取匹配元素的文本内容
//获取操作不带参数(注意:这时候会把所有匹配到的元素内容拼接为一个字符串,不同于其他获取操作!)
$(selector).text();
//设置操作带参数,参数表示要设置的文本内容
$(selector).text(“我是内容”);

尺寸位置操作
高度和宽度操作
高度操作height() :
作用:设置或获取匹配元素的高度值
//带参数表示设置高度
$(selector).height(200);
//不带参数获取高度
$(selector).height();
宽度操作width() :
作用:设置或获取匹配元素的宽度值
//带参数表示设置宽度
//不带参数获取宽度
$(selector).width(200);
css()获取高度和height获取高度的区别?

坐标值操作
offset()
作用:获取或设置元素相对于文档的位置
// 无参数表示获取,返回值为:{left:num, top:num},值是相对于document的位置
$(selector).offset();
// 有参数表示设置,参数推荐使用数值类型
$(selector).offset({left:100, top: 150});

注意点:设置offset后,如果元素没有定位(默认值:static),则被修改为relative

position()
作用:获取相对于其最近的具有定位的父元素的位置。
// 获取,返回值为对象:{left:num, top:num}
$(selector).position();
注意:只能获取,不能设置。

scrollTop()
作用:获取或者设置元素垂直方向滚动的位置
// 无参数表示获取偏移
// 有参数表示设置偏移,参数为数值类型
$(selector).scrollTop(100);

scrollLeft()
作用:获取或者设置元素水平方向滚动的位置
$(selector).scrollLeft(100);

对scrollTop的理解:
垂直滚动条位置 是可滚动区域 在 可视区域上方的 被隐藏区域的高度。
如果滚动条在最上方没有滚动 或者 当前元素没有出现滚动条,那么这个距离为0

使用jQuery操作DOM
为什么要使用jQuery操作DOM
对比JS操作DOM和jQuery操作DOM

使用jQuery的方式来操作DOM更加的简介,方便,统一的调用方式方便我们学习,降低来我们的学习成本。
重点内容
样式和类操作
jQuery动画
节点操作

样式操作
样式属性操作 .css()
作用:设置或获取元素的样式属性值
1 设置样式属性操作:
a设置单个样式:
// 第一个参数表示:样式属性名称
// 第二个参数表示:样式属性值
$(selector).css(“color”, “red”);
b设置多个样式:(也可以设置单个)
// 参数为 {}(对象)
$(selector).css({“color”: “red”, “font-size”: “30px”});

2获取样式属性操作:
// 参数表示要获取的 样式属性名称
$(selector).css(“font-size”);
此时,会返回”font-size”样式属性对应的值。
类操作
添加类样式:
(addClass) 为指定元素添加类className
$(selector).addClass(“liItem”);
注意:此处类名不带点,所有类操作的方法类名都不带点
移除类样式:
removeClass(className) 为指定元素移除类 className
$(selector).removeClass(“liItem”);
$(selector).removeClass(); 不指定参数,表示移除被选中元素的所有类

判断有没有类样式:
hasClass(calssName) 判断指定元素是否包含类 className
$(selector).hasClass(“liItem”);
此时,会返回true或false

切换类样式:
toggleClass(className) 为指定元素切换类 className,该元素有类则移除,没有指定类则添加。
$(selector).toggleClass(“liItem”);

注意点:
操作类样式的时候,所有的类名,都不带点(.)
经验:
1 操作的样式非常少,那么可以通过.css()这个 方法来操作
2 操作的样式很多,那么要通过使用类的方式来操作

    3 如果考虑以后维护方便(把CSS从js中分离出来)的话,推荐使用类的方式来操作。类比CSS书写位置(把css从html中分离出来)

前面内容特色总结:简约、“粗暴”、干净利落、直截了当
案例:图片京东Table栏

jQuery动画是什么?
jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。
隐藏显示动画
1 show方法
作用:让匹配的元素展示出来

// 用法一:
// 参数为数值类型,表示:执行动画时长
/* 单位为:毫秒(ms),参数2000即2秒钟显示完毕 */
$(selector).show(2000);

// 用法二:
// 参数为字符串类型,是jQuery预设的值,共有三个,分别是:slow、normal、fast
/* 跟用法一的对应关系为: /
/
slow:600ms、normal:400ms、fast:200ms */
$(selector).show(“slow”);

// 用法三:
// 参数一可以是数值类型或者字符串类型
// 参数二表示:动画执行完后立即执行的回调函数
$(selector).show(2000, function() {});

// 用法四:
// 不带参数,作用等同于 css(“display”, ”block”)
/* 注意:此时没有动画效果 */
$(selector).show();

注意:
jQuery预设的三组动画效果的语法几乎一致:参数可以有两个,第一个是动画的执行时长,第二个是动画执行完成后的回调函数。
第一个参数是:可以是指定字符或者毫秒数

2 hide方法
作用:让匹配元素隐藏掉
用法参考show方法
$(selector).hide(1000); // 1000表示什么?
$(selector).hide(“slow”);
$(selector).hide(1000, function(){});
$(selector).hide();

滑入滑出动画
1滑入动画效果(联想:生活中的卷帘门)
作用:让元素以下拉动画效果展示出来
$(selector).slideDown(speed,callback);

注意:省略参数或者传入不合法的字符串,那么则使用默认值:400毫秒(同样适用于fadeIn/slideDown/slideUp)
$(selector).slideDown();

2 滑出动画效果
作用:让元素以上拉动画效果隐藏起来
$(selector).slideUp(speed,callback);

3滑入滑出切换动画效果
$(selector).slideToggle(speed,callback);
参数等同与1.5.1 隐藏和显示
淡入淡出动画
1 淡入动画效果
作用:让元素以淡淡的进入视线的方式展示出来
$(selector).fadeIn(speed, callback);
2 淡出动画效果
作用:让元素以渐渐消失的方式隐藏起来
$(selector).fadeOut(1000);
3淡入淡出切换动画效果
作用:通过改变透明度,切换匹配元素的显示或隐藏状态
$(selector).fadeToggle('fast',function(){});
参数等同与1.5.1 隐藏和显示

4改变透明度到某个值
与淡入淡出的区别:淡入淡出只能控制元素的不透明度从 完全不透明 到完全透明;而fadeTo可以指定元素不透明度的具体值。并且时间参数是必需的!
作用:调节匹配元素的不透明度
// 用法有别于其他动画效果
// 第一个参数表示:时长
// 第二个参数表示:不透明度值,取值范围:0-1
$(selector).fadeTo(1000, .5); // 0全透,1全不透

// 第一个参数为0,此时作用相当于:.css(“opacity”, .5);
$(selector).fadeTo(0, .5);

jQuery提供的动画使用方法总结:

有规律的体现:
jQuery提供的这几个动画效果控制的CSS属性包括:高度、宽度、不透明度。{height:400px; width:300px; opacity:.4;}
这三个CSS属性的共性是:属性值只有一个,并且这个值是数值(去掉单位后)。

自定义动画
注意:所有能够执行动画的属性必须只有一个数字类型的值。
比如:要改变字体大小,要使用:fontSize(font-size),不要使用:font

动画支持的属性:
http://www.w3school.com.cn/jquery/effect_animate.asp

作用:执行一组CSS属性的自定义动画
// 第一个参数表示:要执行动画的CSS属性(必选)
// 第二个参数表示:执行动画时长(可选)
// 第三个参数表示:动画执行完后立即执行的回调函数(可选)
$(selector).animate({params},speed,callback);

停止动画
stop()
作用:停止当前正在执行的动画
为什么要停止动画?
如果一个以上的动画方法在同一个元素上调用,那么对这个元素来说,后面的动画将被放到效果队列中。这样就形成了动画队列。(联想:排队进站)
动画队列里面的动画不会执行,直到第一个动画执行完成。
// 第一个参数表示后续动画是否要执行
(true:后续动画不执行 ;false:后续动画会执行)
// 第二个参数表示当前动画是否执行完
(true:立即执行完成当前动画 ;false:立即停止当前动画)
$(selector).stop(clearQueue,jumpToEnd);
都不给,默认false;
解释:
当调用stop()方法后,队列里面的下一个动画将会立即开始。但是,如果参数clearQueue被设置为true,那么队列面剩余的动画就被删除了,并且永远也不会执行。
如果参数jumpToEnd被设置为true,那么当前动画会停止,但是参与动画的每一个CSS属性将被立即设置为它们的目标值。比如:slideUp()方法,那么元素会立即隐藏掉。如果存在回调函数,那么回调函数也会立即执行。

注意:如果元素动画还没有执行完,此时调用sotp()方法,那么动画将会停止。并且动画没有执行完成,那么回调函数也不会被执行。

常用方式:
$(selector).stop();

jQuery节点操作
动态创建元素
// $()函数的另外一个作用:动态创建元素
var $spanNode = $(“我是一个span元素”);
var node = $(“#box”).html(“

  • 我是li
  • ”);

    添加元素
    在元素的最后一个子元素后面追加元素:
    append()(重点)
    作用:在被选元素内部的最后一个子元素(或内容)后面插入内容(存在或者创建出来的元素都可以)
    如果是页面中存在的元素,那么调用append()后,会把这个元素放到相应的目标元素里面去;但是,原来的这个元素,就不存在了。
    如果是给多个目标追加元素,那么方法的内部会复制多份这个元素,然后追加到多个目标里面去。
    常用参数:htmlString 或者 jQuery对象

    // 在$(selector)中追加$node
    $(selector).append($node);
    // 在$(selector)中追加div元素,参数为htmlString
    $(selector).append('

    ');

    不常用操作:(用法跟append()方法基本一致)
    1 appendTo()
    作用:同append(),区别是:把$(selector)追加到node中去
    $(selector).appendTo(node);

    2 prepend()
    作用:在元素的第一个子元素前面追加内容或节点
    $(selector).prepend(node);

    3 after()
    作用:在被选元素之后,作为兄弟元素插入内容或节点
    $(selector).after(node);

    4 before()
    作用:在被选元素之前,作为兄弟元素插入内容或节点
    $(selector).before(node);
    html创建元素(推荐使用,重点)
    作用:设置或返回所选元素的html内容(包括 HTML 标记)
    设置内容的时候,如果是html标记,会动态创建元素,此时作用跟js里面的 innerHTML属性相同
    // 动态创建元素
    $(selector).html(‘传智播客’);
    // 获取html内容
    $(selector).html();
    清空元素
    // 清空指定元素的所有子元素(光杆司令)
    // 没有参数
    $(selector).empty();
    $(selector).html(“”);
    // “自杀” 把自己(包括所有内部元素)从文档中删除掉
    $(selector).remove();

    复制元素
    作用:复制匹配的元素
    // 复制$(selector)所匹配到的元素
    // 返回值为复制的新元素
    $(selector).clone();

    总结:
    推荐使用html(“”)方法来创建元素或者html(“”)清空元素
    案例:
    选择水果
    动态创建表格
    动态添加数据
    操作form表单
    属性操作
    设置属性:
    // 第一个参数表示:要设置的属性名称
    // 第二个参数表示:改属性名称对应的值
    $(selector).attr(“title”, “传智播客”);

    获取属性:
    // 参数为:要获取的属性的名称,改操作会返回指定属性对应的值
    $(selector).attr(“title”);
    此时,返回指定属性的值

    移除属性:
    // 参数为:要移除的属性的名称
    $(selector).removeAttr(“title”);

    注意:checked、selected、disabled要使用.prop()方法。
    prop方法通常用来影响DOM元素的动态状态,而不是改变的HTML属性。例如:input和button的disabled特性,以及checkbox的checked特性。
    细节参考:http://api.jquery.com/prop/

    值和内容
    val()方法:
    作用:设置或返回表单元素的值,例如:input,select,textarea的值
    // 获取匹配元素的值,只匹配第一个元素
    $(selector).val();
    // 设置所有匹配到的元素的值
    $(selector).val(“具体值”);

    text() 方法:
    作用:设置或获取匹配元素的文本内容
    //获取操作不带参数(注意:这时候会把所有匹配到的元素内容拼接为一个字符串,不同于其他获取操作!)
    $(selector).text();
    //设置操作带参数,参数表示要设置的文本内容
    $(selector).text(“我是内容”);

    尺寸位置操作
    高度和宽度操作
    高度操作height() :
    作用:设置或获取匹配元素的高度值
    //带参数表示设置高度
    $(selector).height(200);
    //不带参数获取高度
    $(selector).height();
    宽度操作width() :
    作用:设置或获取匹配元素的宽度值
    //带参数表示设置宽度
    //不带参数获取宽度
    $(selector).width(200);
    css()获取高度和height获取高度的区别?

    坐标值操作
    offset()
    作用:获取或设置元素相对于文档的位置
    // 无参数表示获取,返回值为:{left:num, top:num},值是相对于document的位置
    $(selector).offset();
    // 有参数表示设置,参数推荐使用数值类型
    $(selector).offset({left:100, top: 150});

    注意点:设置offset后,如果元素没有定位(默认值:static),则被修改为relative

    position()
    作用:获取相对于其最近的具有定位的父元素的位置。
    // 获取,返回值为对象:{left:num, top:num}
    $(selector).position();
    注意:只能获取,不能设置。

    scrollTop()
    作用:获取或者设置元素垂直方向滚动的位置
    // 无参数表示获取偏移
    // 有参数表示设置偏移,参数为数值类型
    $(selector).scrollTop(100);

    scrollLeft()
    作用:获取或者设置元素水平方向滚动的位置
    $(selector).scrollLeft(100);

    对scrollTop的理解:
    垂直滚动条位置 是可滚动区域 在 可视区域上方的 被隐藏区域的高度。
    如果滚动条在最上方没有滚动 或者 当前元素没有出现滚动条,那么这个距离为0

    操作form表单
    属性操作
    设置属性:
    // 第一个参数表示:要设置的属性名称
    // 第二个参数表示:该属性名称对应的值
    $(selector).attr(“title”, “传智播客”);

    获取属性:
    // 参数为:要获取的属性的名称,改操作会返回指定属性对应的值
    $(selector).attr(“title”);
    此时,返回指定属性的值

    移除属性:
    // 参数为:要移除的属性的名称
    $(selector).removeAttr(“title”);

    注意:checked、selected、disabled要使用.prop()方法。
    prop方法通常用来影响DOM元素的动态状态,而不是改变的HTML属性。例如:input和button的disabled特性,以及checkbox的checked特性。
    细节参考:http://api.jquery.com/prop/
    案例:表格案例全选反选;
    值和内容
    val()方法:
    作用:设置或返回表单元素的值,例如:input,select,textarea的值
    // 获取匹配元素的值,只匹配第一个元素
    $(selector).val();
    // 设置所有匹配到的元素的值
    $(selector).val(“具体值”);

    text() 方法:
    作用:设置或获取匹配元素的文本内容
    //获取操作不带参数(注意:这时候会把所有匹配到的元素内容拼接为一个字符串,不同于其他获取操作!)
    $(selector).text();
    //设置操作带参数,参数表示要设置的文本内容
    // 如果设置的内容包含html标签(我要动态创建span,这时候行吗?),那么text这个方法会把他们当作文本内容输出,而不会创建元素。这个text()和html()方的主要区别
    $(selector).text(“我是内容”);
    案例:红鲤鱼与绿鲤鱼
    尺寸位置操作
    高度和宽度操作
    高度操作height() :
    作用:设置或获取匹配元素的高度值
    //带参数表示设置高度
    $(selector).height(200);
    //不带参数获取高度
    $(selector).height();
    宽度操作width() :
    作用:设置或获取匹配元素的宽度值
    //带参数表示设置宽度
    //不带参数获取宽度
    $(selector).width(200);
    css()获取高度和height获取高度的区别?

    坐标值操作
    offset()
    作用:获取或设置元素相对于文档的位置
    // 无参数表示获取,返回值为:{left:num, top:num},值是相对于document的位置
    $(selector).offset();
    // 有参数表示设置,参数推荐使用数值类型
    $(selector).offset({left:100, top: 150});

    注意点:设置offset后,如果元素没有定位(默认值:static),则被修改为relative

    position()
    作用:获取相对于其最近的具有定位的父元素的位置。
    // 获取,返回值为对象:{left:num, top:num}
    $(selector).position();
    注意:只能获取,不能设置。

    scrollTop()
    作用:获取或者设置元素垂直方向滚动的位置
    // 无参数表示获取偏移
    // 有参数表示设置偏移,参数为数值类型
    $(selector).scrollTop(100);

    scrollLeft()
    作用:获取或者设置元素水平方向滚动的位置
    $(selector).scrollLeft(100);

    对scrollTop的理解:
    垂直滚动条位置 是可滚动区域 在 可视区域上方的 被隐藏区域的高度。
    如果滚动条在最上方没有滚动 或者 当前元素没有出现滚动条,那么这个距离为0

    案例:固定导航栏
    jQuery事件机制
    jQuery的事件机制,指的是:jQuery对JavaScript操作DOM事件的封装,包括了:事件绑定、事件解绑、事件触发。
    jQuery事件的发展历程(了解)
    简单事件绑定 >> bind事件绑定 >> delegate事件绑定 >> on【重点】

    简单事件绑定:
    click(handler) 单击事件
    blur(handler) 失去焦点事件
    mouseenter(handler) 鼠标进入事件
    mouseleave(handler) 鼠标离开事件
    dbclick(handler) 双击事件
    change(handler) 改变事件,如:文本框值改变,下来列表值改变等
    focus(handler) 获得焦点事件
    keydown(handler) 键盘按下事件
    其他参考:http://www.w3school.com.cn/jquery/jquery_ref_events.asp

    bind方式(不推荐,1.7以后的jQuery版本被on取代)
    作用:给匹配到的元素直接绑定事件
    // 绑定单击事件处理程序
    第一个参数:事件类型
    第二个参数:事件处理程序
    $("p").bind("click mouseenter", function(e){
    //事件响应方法
    });
    比简单事件绑定方式的优势:
    可以同时绑定多个事件,比如:bind(“mouseenter mouseleave”, function(){})
    缺点:要绑定事件的元素必须存在文档中。

    3 delegate方式(特点:性能高,支持动态创建的元素)
    作用:给匹配到的元素绑定事件,对支持动态创建的元素有效
    // 第一个参数:selector,要绑定事件的元素
    // 第二个参数:事件类型
    // 第三个参数:事件处理函数
    $(".parentBox").delegate("p", "click", function(){
    //为 .parentBox下面的所有的p标签绑定事件
    });
    与前两种方式最大的优势:减少事件绑定次数提高效率,支持动态创建出来的元素绑定事件!

    on方式(最现代的方式,兼容zepto(移动端类似jQuery的一个库),强烈建议使用的方式)(重点)
    jQuery1.7版本后,jQuery用on统一了所有的事件处理的方法
    作用:给匹配的元素绑定事件,包括了上面所有绑定事件方式的优点
    语法:
    // 第一个参数:events,绑定事件的名称可以是由空格分隔的多个事件(标准事件或者自定义事件)
    // 第二个参数:selector, 执行事件的后代元素
    // 第三个参数:data,传递给处理函数的数据,事件触发的时候通过event.data来使用
    // 第四个参数:handler,事件处理函数
    $(selector).on(events[,selector][,data],handler);

    // 表示给$(selector)绑定事件,当必须是它的内部元素span才能执行这个事件
    

    $(selector).on( "click",“span”, function() {});

    // 绑定多个事件
    // 表示给$(selector)匹配的元素绑定单击和鼠标进入事件
    $(selector).on(“click mouseenter”, function(){});

    事件解绑
    unbind() 方式
    作用:解绑 bind方式绑定的事件
    $(selector).unbind(); //解绑所有的事件
    $(selector).unbind(“click”); //解绑指定的事件
    undelegate() 方式
    作用:解绑delegate方式绑定的事件
    $( selector ).undelegate(); //解绑所有的delegate事件
    $( selector).undelegate( “click” ); //解绑所有的click事件

    off解绑on方式绑定的事件(重点)
    // 解绑匹配元素的所有事件
    $(selector).off();
    // 解绑匹配元素的所有click事件
    $(selector).off(“click”);
    // 解绑所有代理的click事件,元素本身的事件不会被解绑
    $(selector).off( “click”, “**” );

    事件触发
    简单事件触发
    $(selector).click(); //触发 click事件
    trigger方法触发事件,触发浏览器行为
    $(selector).trigger(“click”);
    triggerHandler触发 事件响应方法,不触发浏览器行为
    比如:文本框获得焦点的默认行为
    $(selector).triggerHandler(“focus”);

    jQuery事件对象介绍
    event.data 传递给事件处理程序的额外数据
    event.currentTarget 等同于this,当前DOM对象
    event.pageX 鼠标相对于文档左部边缘的位置
    event.target 触发事件源,不一定===this
    event.stopPropagation(); 阻止事件冒泡
    event.preventDefault(); 阻止默认行为
    event.type 事件类型:click,dbclick…
    event.which 鼠标的按键类型:左1 中2 右3
    event.keyCode 键盘按键代码
    案例:按键变色
    jQuery补充
    链式编程
    链式编程原理:return this;
    通常情况下,只有设置操作才能把链式编程延续下去。因为获取操作的时候,会返回获取到的相应的值,无法返回 this。

    end(); // 结束当前链最近的一次过滤操作,并且返回匹配元素之前的状态。
    隐式迭代
    隐式迭代的意思是:在方法的内部会为匹配到的所有元素进行循环遍历,执行相应的方法;而不用我们再进行循环,简化我们的操作,方便我们调用。
    如果获取的是多元素的值,大部分情况下返回的是第一个元素的值。

    案例【五角星评分控件】
    each方法
    有了隐式迭代,为什么还要使用each函数遍历?
    大部分情况下是不需要使用each方法的,因为jQuery的隐式迭代特性。
    如果要对每个元素做不同的处理,这时候就用到了each方法

    作用:遍历jQuery对象集合,为每个匹配的元素执行一个函数
    // 参数一表示当前元素在所有匹配元素中的索引号
    // 参数二表示当前元素(DOM对象)
    $(selector).each(function(index,element){});
    Element是一个 js对象,需要转换成jquery对象

    【案例】 什么都看不见

    多库共存
    此处多库共存指的是:jQuery占用了$ 和jQuery这两个变量。当在同一个页面中引用了jQuery这个js库,并且引用的其他库(或者其他版本的jQuery库)中也用到了$或者jQuery这两个变量,那么,要保证每个库都能正常使用,这时候就有了多库共存的问题。

    // 模拟另外的库使用了 $ 这个变量
    // 此时,就与jQuery库产生了冲突
    var $ = { name : “itecast” };

    解决方式:
    // 作用:让jQuery释放对$的控制权,让其他库能够使用$符号,达到多库共存的目的。此后,只能使用jQuery来调用jQuery提供的方法
    $.noConflict(); //true两个都交出来,返回值是新的调用方法

    jQuery插件机制
    jQuery这个js库,虽然功能强大,但也不是面面俱到包含所有的功能。
    jQuery是通过插件的方式,来扩展它的功能:
    当你需要某个插件的时候,你可以“安装”到jQuery上面,然后,使用。
    当你不再需要这个插件,那你就可以从jQuery上“卸载”它。
    (联想:手机软件,安装的app就好比插件,用的时候安装上,不用的时候卸载掉)
    第三方插件
    jQuery.color.js
    animate()自定义动画:不支持背景的动画效果
    animate动画支持的属性列表
    jQuery.lazyload.js
    使用步骤:
    引入jQuery文件
    引入插件
    使用插件
    制作插件
    如何创建jQuery插件:
    http://learn.jquery.com/plugins/basic-plugin-creation/

    全局jQuery函数扩展方法
    $.pluginName = function() {};

    jQuery对象扩展方法
    $.fn. pluginName = function() {};

    jQueryUI
    jQueryUI专指由jQuery官方维护的UI方向的插件。
    官方API:http://api.jqueryui.com/category/all/
    其他教程:jQueryUI教程
    基本使用:
    引入jQueryUI的样式文件
    引入jQuery
    引入jQueryUI的js文件
    使用jQueryUI功能

    你可能感兴趣的:(jQuery)