jQuery语法

(1)引用jquery文件及下载库:

http://jquery.com/download/

下载

Download the compressed, production jQuery 2.2.2

这个是用户版的,已经被精简和压缩。

然后使用

<script src="jquery.js"></script>

来启动这个库文件,记得将下载的文件重命名为jquery.js

也可以使用谷歌和微软的CDN,不过这里略。

(2)jQuery语法

$ (selector).action()

其中$是必须的,表示使用jQuery语法;

selector表示你要对哪个进行操作;

action()表示进行的操作;

例如:$(“div”).hide() 其表示对所有div标签包含的内容进行隐藏,如果是<”p”>则表示对p标签包含的东西进行隐藏。

其他:

$(this) 表示对当前HTML元素进行操作

$(“#abc”) 表示对id为abc的元素进行操作

$(“.abc”) 表示对class=”abc”的进行操作

(3)$(document).ready

这个存在的意义在于,只有当文档加载完毕(不确定是指所有文档,还是指使用的文档的那一部分),才能运行jQuery代码

(4)选择器

①$(“p”) 选择元素为<p>的

②$(“p.abc”) 选择class=”abc”的<p>元素

③$(“p#abc”) 选择id=”abc”的<p>元素

④$(“[href]”) 选择所有带有href属性的元素

⑤$(“[href=’#’]”) 选择所有带href值等于“#”的元素

⑥$(“[href!=’#’]”) 选择所有带href值不等于“#”的元素

⑦$(“[href$=’.jpg’]”) 选择所有带href,末尾以.jpg结尾的元素

more:

语法

描述

$(this)

当前 HTML 元素

$("p")

所有 <p> 元素

$("p.intro")

所有 class="intro" 的 <p> 元素

$(".intro")

所有 class="intro" 的元素

$("#intro")

id="intro" 的元素

$("ul li:first")

每个 <ul> 的第一个 <li> 元素

$("[href$='.jpg']")

所有带有以 ".jpg" 结尾的属性值的 href 属性

$("div#intro .head")

id="intro" 的 <div> 元素中的所有 class="head" 的元素

(5)事件触发条件

①ready是完成后触发,一般用于文档。$(document).ready(执行的命令)

②click是点击后触发,一般用于按钮,也可以用于点击文档某区域。$(selector).click(执行的命令)

③dclick是双击后触发。$(selector).dclick(执行的命令);

④focus是元素获得焦点时触发的事件;

⑤mouseover是鼠标悬停后触发的事件;

更多事件触发参考:

http://www.w3school.com.cn/jquery/jquery_ref_events.asp

(6)名称冲突

例如jQuery和某个库名称冲突了(例如同样适用$符号作为开始),那么使用这个命令;

var jq=jQuery.noConflict(),帮助您使用自己的名称(比如 jq)来代替 $ 符号。

(7)解释

$(document).ready(function(){

$(".ex .hide").click(function(){

$(this).parents(".ex").hide("slow");

});

});

第一行是,当文件准备好了,执行函数,函数内容是后面的:

第二行是,class=”ex”的元素中的class=”hide”元素,点击后触发函数,函数内容为第三行;

第三行是,当前元素(this)的所有祖先元素(parents,一直到根元素html为止)中class=”ex”的元素,被隐藏(hide),速度为缓慢(slow)

疑问:

当有两个同样的东西时,为什么只隐藏自己当前这个,不隐藏另外一个?

推测是因为只遍历其祖先,不包含自己(且祖先中符合class=”ex”要求的)

(8)隐藏和显示

隐藏是hide(),而显示对应的是show(),

只要将隐藏的hide()改为显示的show()即可。

还可以规定速率:

速率有三种,slow(慢),fast(快),数字(毫秒)。

例如hide(“slow”);   show(“fast”);    hide(2000);

需要注意的是:无参数为瞬间完成,fast为快(但比瞬间慢),slow为慢,数字无需加引号。

另有toggle,用法同show和hide,效果是,如果是隐藏,点击后显示,如果是显示,点击后隐藏。也可以加时间和速度参数。

问题:假如多次点击,他会执行完每一次的行为,而不是只执行最近一次

(9)淡入和淡出

注意大写,对大小写是敏感的。

fadeIn(); //淡入(显示)

fadeOut(); //淡出(隐藏)

fadeToggle(); //类似toggle,如果隐藏则显示,如果显示则隐藏

fadeTo(速度, 透明度0~1, 返回函数); //可以调整不透明度,注意,不能大于1

如:

$("#img_1st").fadeTo(1000,0.3);

以1000ms的速度,将id=”img_1st”的东西设置为透明度30%

注:

假如有多个淡入同时执行,则分别执行自己的,而不是逐个执行。除非有设置设置其执行顺序。

更多特效参考;

http://www.w3school.com.cn/jquery/jquery_ref_effects.asp

(10)滑动

说明:非隐藏的情况下,滑动后就是隐藏了,隐藏的情况下,相反的滑动就是显示。

向上滑动:slideUp();

向下滑动:slideDown();

切换滑动(先向上,再点击则向下):slideToggle()

其他效果:

http://www.w3school.com.cn/jquery/jquery_ref_effects.asp

(11)显示

display:none;

在css的style设置,这种设置为初始不显示。

(12)动画

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

第一个是必须是,表示形成动画的CSS属性,简单的来说,例如初始字号大小为10px,然后这里填写50px,那么字体就会自动变为50px(这个变化的过程就是动画)

注意:

①这个可以操纵块,但是似乎是不能操作<p>标签。

②可以操纵CSS属性;

③移动位置的话,需要在style里这么设置:position:fixed

一些使用:

$(document).ready(function(){

$("#b_3rd").click(function(){

$("#a_3rd").animate(

{left:'550px', //左边的位置变为550px

width:'100px', //宽度变为100px

top:'-=200px', //向上的位置减少200px

fontSize:'50', //设置字体大小(注意没有-),并且S大写

});

});

});

并且由于top使用的是相对位置,因此每次点击top,都会移动位置

还可以设置为属性,例如:

width:’toggle’ //宽度形式的隐藏和显示切换

hide隐藏show显示。

不过貌似不能淡入淡出和改变透明度,是因为淡入淡出本身就是动画么?

队列:

$(document).ready(function(){

$("#b_3rd").click(function(){

$("#a_3rd").animate({left:'550px'}); //左边的位置变为550px

$("#a_3rd").animate({width:'100px'});//宽度变为100px

$("#a_3rd").animate({top:'-=200px'});//向上的位置减少200px

$("#a_3rd").animate({fontSize:'50'});//设置字体大小(注意没有-),并且S大写

});

});

这种写法就是让其按顺序执行先移动位置,然后宽度变化,然后往上移动,再字体变大

(13)停止动画

语法:

$(selector).stop(stopAll,goToEnd);

假如有动画队列1、2、3、4,正在执行1;

默认无参数是1停止,下来执行2,3,4;

第一个参数存在表示1、2、3、4都停止;

第二个参数表示1停止,但是立刻出结果

参数用true和false来表示。

①false, false表示1停止,执行2、3、4;

②false, true表示直接完成1,然后执行2,3,4;

③true, false表示1停止,234取消;

④true,true 表示1直接出结果,然后其他停止;

如代码:

<div style="position:fixed" id="a_3rd">

<p>用于测试动画的文字</p>

</div>

<div>

<p style="text-align:center">

<button id="b_3rd" align="center">点击后左面的文字会移动</button>

<button id="b_4th" align="center">点击停止旁边按钮的动画</button>

</p>

</div>

以下是对其进行操作:

$(document).ready(function(){

$("#b_3rd").click(function(){

$("#a_3rd").animate({left:'550px'},2000); //左边的位置变为550px

$("#a_3rd").animate({width:'100px'},2000);//宽度变为100px

$("#a_3rd").animate({top:'-=200px'},2000);//向上的位置减少200px

$("#a_3rd").animate({fontSize:'50'},2000);//设置字体大小(注意没有-),并且S大写

});

$("#b_4th").click(function(){

$("#a_3rd").stop(true); //停止其的一切动画队列

});

});

(14)CallBack函数

称为回调函数,

其作用是,当前动画执行完100%后,执行该函数。

可以理解为,当某条件满足之后,执行该函数。

(15)AJAX方法(异步请求)

具体来说,是load()方法,语法是:

$(selector).load(URL,data,callback);

例如读取某个链接或者本地文件:

$("#a_3rd").load("a.txt"); //这是标签为#a_3rd的读取文本文档a.txt

①URL是希望加载的URL(链接);

②data参数规定与请求一同发送的查询字符串键/值对集合(不懂,感觉是说这个是查询的时候顺便发个信息给对方);

③callback是结束请求后执行的函数;

可以在URL里面加入选择器(例如#是选择id的,.是选择class的),来选择某一部分的内容(例如js文件的某个标签的)。

如:

load('/example/jquery/demo_test.txt #p1') //读取id=”p1”的标签内的

也可以把#p1改为h2,读取h2标签内的

load的返回值(注意大小写):

responseTxt 包含调用成功时的结果内容

statusTxt 包含返回状态,如果成功是success,如果失败是error

xhr 包含XMLHttpRequest对象(不懂)

(16)get和post——两种http请求方法

get——从指定的资源请求数据;

post——向指定的资源提交要被处理的数据;

GET方法:

查询字符串(名称/值 对)是在GET请求的URL中发送的;

①GET请求可被缓存;

②GET请求保留在浏览器历史记录中;

③GET请求可被收藏为书签;

④GET请求不应在处理敏感数据时使用;

⑤有长度限制;

⑥只应当用于取回数据;

POST方法:

①不会被缓存;

②不会被保存在浏览器记录中;

③不能被收藏为书签;

④对数据长度没有要求;

 

GET

POST

后退按钮/刷新

无害

数据会被重新提交(浏览器应该告知用户数据会被重新提交)。

书签

可收藏为书签

不可收藏为书签

缓存

能被缓存

不能缓存

编码类型

application/x-www-form-urlencoded

application/x-www-form-urlencoded 或 multipart/form-data。为二进制数据使用多重编码。

历史

参数保留在浏览器历史中。

参数不会保存在浏览器历史中。

对数据长度的限制

是的。当发送数据时,GET 方法向 URL 添加数据;URL 的长度是受限制的(URL 的最大长度是 2048 个字符)。

无限制。

对数据类型的限制

只允许 ASCII 字符。

没有限制。也允许二进制数据。

安全性

与 POST 相比,GET 的安全性较差,因为所发送的数据是 URL 的一部分。

在发送密码或其他敏感信息时绝不要使用 GET !

POST 比 GET 更安全,因为参数不会被保存在浏览器历史或 web 服务器日志中。

可见性

数据在 URL 中对所有人都是可见的。

数据不会显示在 URL 中。

GET语法:

$.get(URL,callback);

URL是必须有的,表示链接;

callback是 请求成功 后执行的回调函数;

POST语法:

$.post(URL,data,callback);

data是连通请求发送的数据。

以下是收集的资料:

(1)GET用于信息获取,而且应该是安全的和幂等的。

“安全”大概意思是:

①不安全的信息(敏感的信息)不应该由GET获取;

②GET主要用于获取信息,而非修改信息;

③GET请求一般不应产生副作用;

“幂等”大概意思是:

①对同一个URL的多次请求的结果是相同的。

例如想要获得一个信息,多次请求,应该总能获得这个信息(而非突然变为另外一个信息);

GET请求的数据会附在URL之后(把数据放在HTTP协议头中),以“?”分割URL和传输数据,参数之间以“&”相连,如:

login.action?name=hyddd&password=idontknow&%E4%BD%A0%E5%A5%BD

如果数据是英文字母/数字,则原样发送;

如果是空格,则转换为+;

如果是中文/其他字符,则把字符串用BASE64加密,得出%E4%BD%A0%E5%A5%BD,其中%XX中的XX为该符号以16进制表示的ASCII值

(2)POST表示可能改变服务器上的资源请求

①例如对某论坛的帖子进行回帖,服务器上的该贴多了一个回帖。因此应该通过POST来实现;

POST把提交的数据放置在HTTP包的包体之中。

(3)因此,POST的安全性(关于丢失敏感信息)比GET高,传输的数据更多一些,但是更复杂一点(因为data属性,要发一个表单)。

从零开始学_JavaScript_系列(四)——jquery(基础,选择器,触发条件,动画,回调函数)...相关推荐

  1. 从零开始学_JavaScript_系列(14)——dojo(7)(饼图,BorderContainer,hashchange,弹窗)...

    5/5更新.BorderContainer自适应在本地时正常使用的方法,请查看原文代码之前那一段话 (60)创建一个饼形图 比较简单的标签声明法:(只需要修改数据即可) ①首先,加载dojo文件和样式 ...

  2. 从零开始学_JavaScript_系列(21)——dojo(8)(手把手教你封装一个widget)

    (73)封装一个widget 醒目:必须在web环境下使用,无论是python的web.py或者是通过http访问网站环境,都可以,但纯本地是不可行的. 首先,什么是widget? 简单来说,就是一个 ...

  3. 从零开始学_JavaScript_系列(九)——dojo(2)(AJAX、时间控件、鼠标事件、样式修改、事件移除、消息发布订阅)

    如果没有接触过dojo,建议阅读: http://blog.csdn.net/qq20004604/article/details/51028702 里面介绍了如何加载dojo. 关于dojo的下载, ...

  4. 从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)

    关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (1)加载 ①首先 ...

  5. 从零开始学_JavaScript_系列(五)——dojo(基础,动画移动,重力模拟,动画合并,添加标签)...

    关于dojo的下载,请查看: https://dojotoolkit.org/download/ 建议下载FULL SOURCE版 如果需要讨论,请评论.或者站内信,我会尽快回复. (1)加载 ①首先 ...

  6. 从零开始学_JavaScript_系列(16)——CSSlt;3gt;(文本、对齐、圆角、盒模型、背景)...

    注意,有些CSS属性对于低版本浏览器(典型的就是IE),可能不支持,所以在面向低版本浏览器的时候需要注意的说. 关于CSS属性的兼容性检测的网站:http://caniuse.com/ 部分图片来自网 ...

  7. 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)...

    结论请看最后的图片 关于定义: margin:层的边框以外留的空白 background-color:背景颜色 background-image:背景图片 padding:层的边框到层的内容之间的空白 ...

  8. 从零开始学_JavaScript_系列(六)——CSS的padding、margin、border属性超详细解释(图文)

    结论请看最后的图片 关于定义: margin:层的边框以外留的空白 background-color:背景颜色 background-image:背景图片 padding:层的边框到层的内容之间的空白 ...

  9. 从零开始学_JavaScript_系列(24)——查看对象属性,合并数组

    (35)查看对象是否有某个属性(转) 来源: http://www.cnblogs.com/snandy/archive/2011/03/04/1970162.html 内容: 两种方式,但稍有区别 ...

最新文章

  1. 按实际价格重估在版本 0, 财政年度 2016 中不可能
  2. 《死亡笔记》与绵球方块先生
  3. LeetCode 1008. 先序遍历构造二叉树(已知先序,求二叉搜索树)
  4. 动态规划 - 九度OJ 1480
  5. 将jar包制作成docker镜像
  6. C#--Winform开发常见注意事项
  7. 超级搜索术-朱丹-全部笔记整理
  8. arm体系结构编程-入门介绍
  9. php元换成万元,元换算万元(元换算成万元换算器)
  10. 基于Android技术的物联网应用开发
  11. vue 中使用 pug
  12. 数据结构初步(十二)- 插入排序与希尔排序超详细图解分析
  13. 通过集成腾讯 IM 来浅尝一下.net 6 的 MINI API
  14. 使用 canvas 画矩形,实现橡皮擦功能
  15. linux上u盘怎么加密,linux使用luks加密硬盘或u盘
  16. kali-linux u盘便携性系统,暗组u盘怎么进入kali linux系统
  17. SaaS,PaaS和IaaS在一张图中进行了解释
  18. Java读取单个字符
  19. 在线 加密解密 工具
  20. python日期加减一年_Python日期的加减等操作

热门文章

  1. SQLAlchemy 教程 —— 进阶篇
  2. 查找算法:插值查找算法实现及分析
  3. 汇编语言:实现大小写字母转换
  4. CSS3动画常用贝塞尔曲线-效果演示
  5. 【搜索引擎】全文索引数据结构和算法
  6. mongoose 执行删除操作的坑
  7. 爬虫.之登陆及动态网页的抓取
  8. foreach的 多种用法
  9. sharepoint 添加解决方案 遇到的问题
  10. 大数据专家手把手教你打造实时数据湖