jQuery框架准备学习

1、JavaScript编程的劣势

  • 选择元素麻烦,全线兼容的方法只有 getElementById() 和 getElementsByTagName() 两个。其他的方法是不都兼容的。getElementsByClassName() 通过类名选择元素,IE9开始兼容。
  • 样式操作麻烦,得到原生样式,需要我们自己造的轮子,例如:fetchComputedStyle()
  • 动画麻烦,也需要我们自己造轮子animate();
  • 批量控制麻烦,大量出现的for循环语句;排他操作麻烦
  • HTML节点操作麻烦

由元素可以写出来的函数,函数封装即轮子与轮子的集合就是框架(jQuery)

2、jQuery网站使用

官网:www.jquery.com

jQuery

口号:写更少的代码,做更多的事情

官方的自我介绍:

What is jQuery?
jQuery is a fast, small, and feature-rich JavaScript library. It makes things like HTML document traversal and manipulation, event handling, animation, and Ajax much simpler with an easy-to-use API that works across a multitude of browsers. With a combination of versatility and extensibility, jQuery has changed the way that millions of people write JavaScript.

jQuery是什么?
  jQuery是一个快速,小,功能丰富的JavaScript库。它使诸如HTML文档遍历和操作,事件处理、动画和Ajax更简单和易于使用的API,跨越多种浏览器。结合的通用性和可扩展性,jQuery已经改变了数百万人的方式编写JavaScript。

jQuery 有两条个本:「1.X」「2.X」

jQuery 「2.X」 has the same API as jQuery 「1.X」, but does not support Internet Explorer 6, 7, or 8.

jQuery「2.X」和「1.X」的功能完全一致,API完全一致,但是「2.X」不兼容IE6、7、8。

下载的时候有两个选择:


版本

3、jQuery的整体感知

1. 选择问题轻松解决

$()函数就是 jQuery 的核心函数,query就是检查的意思,也就是说jQuery的核心招牌功能就是选择元素:

$("#box ul li.box span").css("background-color","red");

语法:$(“选择器”)
选择的就是所有符合条件的元素,而不是一个。
可以用jQuery来代替,和jQuery是同一个函数:

jQuery("#box ul li.haha span").css("background-color","red");
比 document.getElmentById() 方便!
jQuery选择的元素,所有浏览器兼容!

2. 样式问题轻松解决

得到样式(得到计算后的样式):
$(".box").css("width");
通过$()函数选择出来的东西,都是jQuery对象,所有的jQuery对象,都可以继续打点调用css函数,css函数已经封装了计算后的样式。

设置样式:

$("box").css("width",100);// 单个样式设置
//多个样式设置使用 json
 $(".box").css({
  "width":700,
  "height" : 300,
  "opacity" : 0.4
 });

语法
$(“选择器”).css(JSON);

3. 动画的问题轻松解决

jQuery内部含有一个运动框架,animate
$(".box").animate({"left":900},4000,function(){
alert("运动完成");
});

4. 批量添加监听、节点关系

所有的li都有监听了:
(".circles ol li").mouseenter(function(){ //自己变红,自己的兄弟恢复为橙色(this).css("background-color","red").siblings().css("background-color","orange");
});
siblings()表示兄弟节点。//兄弟姐妹

4、$()函数

jQuery对象不是原生JS对象
$()函数,是招牌功能,能够根据CSS选择元素。

比如:
$("#box")
选择页面上id为box的盒子。

注意,选择出来的东西,是一个类数组对象,是****jQuery****自己的对象,这个****jQuery****对象后面不能跟着原生JS 的语法:
$("#box").style.backgroundColor = "red";

因为.style.backgroundColor是原生JS语法,$()原则的对象是jQuery对象,不能跟着原生。

所以,如果想把jQuery对象,转为原生JS对象,要加[0]就行了:

$("#box")[0].style.backgroundColor = "red";

5、引号问题

$("选择器")
注意引号不能丢!!在jQuery世界中,只有三个东西不能加引号,其他必须加引号:

    $(this)
    $(document)
    $(window)

6、筛选器

这些都是关于序号的:

    $("p")          所有的p
    $("p:first")    第一个p
    $("p:last")     最后一个p
    $("p:eq(3)")    下标为3的p
    $("p:lt(3)")    下标小于3的p
    $("p:gt(3)")    下标大于3的p
    $("p:odd")      下标是奇数的p
    $("p:even")     下标是偶数的p

特别的,eq equle 可以单独提炼为方法,可以连续打点:
$("p").eq(3).animate({"width":400},1000);
等价于
$("p:eq(3)").animate({"width":400},1000);
提炼出来的好处是,可以用变量
var a = 3;
$("p").eq(a).animate({"width":400},1000);

7、CSS函数

css函数可以读样式,可以设样式。
读样式,可以读取计算后样式,写一个参数,是不是驼峰,无所谓,但是必须加引号:
$("p:first").css("background-color");
$("p:first").css("backgroundColor");

设置样式,设置样式,有两种语法,**如果你只想设置一个样式,逗号隔开 k 和 v :
$("p:odd").css("backgroundColor","blue");
如果想设置很多样式,就写JSON:
$("p:odd").css(JSON);
所有的数值,不需要单位:

 $("p:lt(4)").css({
  "width" : 20,
  "height" : 20,
  "backgroundColor" : "red"
 })

当然,你也可以这样,不厌其烦的用逗号:
$("p:lt(4)").css("width",20);
$("p:lt(4)").css("height",20);
$("p:lt(4)").css("backgroundColor","red");
特别的,还支持+=写法:
$("p:eq(5)").css("width","+=20px");

8、animate函数

动画

animate缓冲,jQuery需要插件来完成。
jQuery默认不是匀速,是 easeInOut (先快后慢)

和我们封装的框架不一样,jQuery默认有一个处理机制,叫做动画排队。当一个元素接收到了两个animate命令之后,后面的animate会排队:
$("p").animate({"left":1000},2000);
$("p").animate({"top":400},2000);
先2000毫秒横着跑,然后2000毫秒竖着跑。动画总时长4000。

如果想让元素斜着跑,就是同时变化left和top,就写在同一个JSON里面:
$("p").animate({"left":1000,"top":400},2000);

不同的元素,不排队,是同时的。

8.事件监听

jQuery颠覆了我们的行文习惯:

    $(".box1").click(function(){
        //点击box1之后做的事情
    });

事件名一律不写on。特别的,鼠标进入改成了mouseenter,鼠标离开改为了mouseleave。

jQuery的哲学就是DOM编程领域的霸主,操作DOM节点、绑定监听、运动、css样式、Ajax等等都有封装。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,530评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 86,403评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,120评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,770评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,758评论 5 367
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,649评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,021评论 3 398
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,675评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,931评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,659评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,751评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,410评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,004评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,969评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,203评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,042评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,493评论 2 343

推荐阅读更多精彩内容

  • 为甚嚒要学习jQuery? 因为JS中有很多痛点: window.onload事件只能出现一次,如果出现多次,后面...
    magic_pill阅读 810评论 0 13
  • 通过jQuery,您可以选取(查询,query)HTML元素,并对它们执行“操作”(actions)。 jQuer...
    枇杷树8824阅读 649评论 0 3
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 9,093评论 0 3
  • 一.什么是jQuery jQuery是一个JavaScript库,它通过封装原生的JavaScript函数得到一整...
    love2013阅读 568评论 0 4
  • 选择器选择器是jQuery的核心。 事件 动画 扩展
    wyude阅读 468评论 0 1