jQuery

1、什么是jQuery?

提到jquery就不能不提javascript(江湖简称js)。js是一种脚本语言,浏览器可以解析js。js通过操作DOM(文档对象模型Document Object Model,简称DOM)来处理文档。而jQuery是js库,就是一堆js函数的集合,jQuery本身就是纯js代码。,jquery就是要用更少的代码,漂亮的完成更多的功能。

1、js和jquery的一些差异

 (1)定位元素

 JS

document.getElementById("someId");

document.getElementsByTagName("div");

jQuery

$("#abc") 通过id定位

$(".abc") 通过class定位

$("div") 通过标签定位

需要注意的是JS返回的结果是这个元素,jQuery返回的结果是一个JS的对象。以下例子中假设已经定位了元素abc。

(2) 改变元素的内容

JS

obj.innerHTML = "test";

jQuery

obj.html("test");

(3)显示隐藏元素

JS

obj.style.display = "none";

obj.style.display = "block";

jQuery

obj.hide();

obj.show();

obj.toggle();

当然还有其他的差异,这里不多数说了。结果就是js用着不太方便所以有了jquery!

这里可以看一个例子

3、jQuery的使用

如果要在文档中使用jquery,需要在文档中引用jQuery文件。

由于文档是从上到下解析的,如果在执行某个jQuery语句的是 ,dom没有被创建怎么办?

可以通过下面的办法解决。

(1) 将jQuery语句放到文档最后。保证执行的时候,文档已经被加载过。

(2)使用jQuery 事件 - ready() 方法 

$(document).ready(function(){

//jquery 语句

});

$().ready(function(){

//jquery 语句

});

$(function(){

//jquery 语句

});

4、jQuery 选择器

在js中,我们使用

document.getElementById("someId");

document.getElementsByTagName("div");

来获取dom对象。

在jQuery中获取对象的方法被简化。通过各种选择器来获取对象

(1)最常见的通过ID选择

$("#someId") 通过ID获取jQuery对象。

(2)jQuery 元素选择器

$("p") 选取元素。

$("p.intro") 选取所有 class="intro" 的元素。

$("p#demo") 选取所有 id="demo" 的元素。

(3)jQuery 属性选择器

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

$("[href]") 选取所有带有 href 属性的元素。

$("[href='#']") 选取所有带有 href 值等于 "#" 的元素。

$("[href!='#']") 选取所有带有 href 值不等于 "#" 的元素。

$("[href$='.jpg']") 选取所有 href 值以 ".jpg" 结尾的元素。


这里说下js和jQuery对象的相互转化。

 jQuery对象转成 DOM对象

如:var $jqueryObj=$("#someId"); //jQuery对象

var domObj=$jqueryObj.get(0); //DOM对象

var domObj=$jqueryObj[0]; //DOM对象

DOM对象转成jQuery对象

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象)

如:var domObj=document.getElementById("someId"); //DOM对象

var $jqueryObj=$(domObj); //jQuery对象

转换后,就可以任意使用jQuery的方法了。

5、jQuery 事件

当我面活动jQuery对象后,就可以通过绑定事件来实现一些效果。

双击事件

$("button").dblclick(function(){

//jQuery代码

});

单击事件

$("button").click(function(){

//jQuery代码

});


6、jQuery 效果

jQuery可以实现一些简单的页面效果,不过更多时候的页面效果是使用jQuery+css来实现

hide() 隐藏   $(selector).hide(speed,callback);

show() 展示 $(selector).show(speed,callback);

hide()和show()的集合体  $(selector).toggle(speed,callback); 

显示被隐藏的元素,并隐藏已显示的元素:

同理还有淡入淡出效果

$(selector).fadeIn(speed,callback);

$(selector).fadeOut(speed,callback);

$(selector).fadeToggle(speed,callback);

fadeTo() 方法允许渐变为给定的不透明度(值介于 0 与 1 之间)。

语法:$(selector).fadeTo(speed,opacity,callback);

必需的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

fadeTo() 方法中必需的 opacity 参数将淡入淡出效果设置为给定的不透明度(值介于 0 与 1 之间)。

滑动效果

slideDown()

slideUp()

slideToggle()

jQuery 效果 - 动画

语法:

$(selector).animate({params},speed,callback);

必需的 params 参数定义形成动画的 CSS 属性

可选的 speed 参数规定效果的时长。它可以取以下值:"slow"、"fast" 或毫秒。

可选的 callback 参数是动画完成后所执行的函数名称。


以上这些效果类的内容,在平时的开发中并不是很常用。这些效果大多在切图的时候就已经完成了。我们使用jQuery更多的是进行数据获取、传递、赋值等。

7、jQuery 操作 HTM

jQuery 拥有可操作 HTML 元素和属性的强大方法!!

(1)获得内容 - text()、html() 、 val()以及 获取属性 attr()

三个简单实用的用于 DOM 操作的 jQuery 方法:

text() - 设置或返回所选元素的文本内容

html() - 设置或返回所选元素的内容(包括 HTML 标记)

val() - 设置或返回表单字段的值

赋值也是这3个方法,把赋值内容放到括号里!!

(2) jQuery - 添加元素

append() - 在被选元素的结尾插入内容 。支持多个html元素

prepend() - 在被选元素的开头插入内容。支持多个html元素

after() - 在被选元素之后插入内容。支持多个html元素

before() - 在被选元素之前插入内容。支持多个html元素

(3)删除元素/内容

remove() - 删除被选元素(及其子元素)

empty() - 从被选元素中删除子元素

(4) jQuery - 获取并设置 CSS 类

addClass() - 向被选元素添加一个或多个类

removeClass() - 从被选元素删除一个或多个类

toggleClass() - 对被选元素进行添加/删除类的切换操作

css() - 设置或返回样式属性

(5)jQuery 遍历

下图展示了一个家族树。通过 jQuery 遍历,您能够从被选(当前的)元素开始,轻松地在家族树中向上移动(祖先),向下移动(子孙),水平移动(同胞)。这种移动被称为对 DOM 进行遍历。


向上遍历 DOM 树

parent()/parents()

jQuery parent() 方法

parent() 方法返回被选元素的直接父元素。

该方法只会向上一级对 DOM 树进行遍历。

下面的例子返回每个 元素的的直接父元素:

$("img").parent();//返回图片标签的父级

Query parents() 方法

parents() 方法返回被选元素的所有祖先元素,它一路向上直到文档的根元素 ()。

$("b").parents();//返回标签的所有祖先元素

向下遍历 DOM 树

children() 方法返回被选元素的所有直接子元素。该方法只会向下一级对 DOM 树进行遍历 等他find("*")

find()  方法返回被选元素的后代元素,一路向下直到最后一个后代。

jQuery 遍历 - 过滤

jQuery first() 方法

jQuery last() 方法

jQuery eq() 方法 返回被选元素中带有指定索引号的元素。索引号从 0 开始,因此首个元素的索引号是 0 而不是 1

直接看示例

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

推荐阅读更多精彩内容

  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,334评论 0 2
  • 1.JQuery 基础 改变web开发人员创造搞交互性界面的方式。设计者无需花费时间纠缠JS复杂的高级特性。 1....
    LaBaby_阅读 1,169评论 0 1
  • jQuery是一套跨浏览器的JavaScript库,简化HTML与JavaScript之间的操作。由约翰·雷西格(...
    静候那一米阳光阅读 783评论 0 18
  • 警告请使用 document.write() 仅仅向文档输出写内容。如果在文档已完成加载后执行 document....
    hx永恒之恋阅读 2,847评论 3 104
  • 周晨(大发化纤有限公司) 【日精进打卡第3天】 【知~学习】 《六项精进》读2遍 共47遍 《六项精进》背0遍 ...
    周晨i阅读 414评论 0 0