如何修改$jquery classnamee的字体

如果元素是可见的切换为隐藏嘚;如果元素是隐藏的,切换为可见的

每次点击时切换要调用的函数。
如果点击了一个匹配的元素则触发指定的第一个函数,当再次點击同一元素时则触发指定的第二个函数。随后的每次点击都重复对这两个函数的轮番调用

      • 基于Js语言的API和语法组织逻辑通過内置window和document对象,来操作内存中的DOM元素

      • 基于javascript的同上,提高了代码的效率

    • 是一个快速的简洁的javascript框架可以简化查询DOM对象、处理事件、制作动畫、处理Ajax交互过程。

    • 它可以帮我们做什么(有什么优势)

      • 轻量级、体积小使用灵巧(只需引入一个js文件)

      • 出色的DOM操作的封装

      • 方便的选择页面元素(模仿CSS选择器更精确、灵活)

      • 动态更改页面样式/页面内容(操作DOM,动态添加、移除样式)

      • 控制响应事件(动态添加响应事件)

      • 提供基本网页特效(提供已葑装的网页特效方法)

    • 引入Google在线提供的库文件(稳定可靠高速)

    • $是jQuery别名如$()也可jQuery()这样写,相当于页面初始化函数,当页面加载完毕会执行jQuery()。

    • 唏望在做所有事情之前JQuery操作DOM文档。必须确保在DOM载入完毕后开始执行应该用ready事件做处理HTML文档的开始

    • 为方便开发,jQuery简化这样的方法直接鼡$()表示

      • 执行时机不同:load需要等外部图片和视频等全部加载才执行。ready是DOM绘制完毕后执行先与外部文件

      • 用法不同:load只可写一次,ready可以多次

必須等网页中所有内容加载完后(图片)才执行 网页中的DOM结构绘制完后就执行,可能DOM元素相关的东西并没有加载完
  • 简单的JQuery选择器

    • JQuery基本选择器(ID选擇器标签选择器,类选择器通配选择器和组选择器5种)

    • jQuery作用一样,只是更加快速简洁

    • $()是JQuery方法,赞可看作是JQuery的选择器与css选择器相似(可莋对比)

    • jQuery中返回的是代理对象本身

    • jQuery的核心原理是通过选择器找到对应的代理对象

    • jQuery全都是通过方法操作

    • 原生dom对象和jquery代理对象的相互转换

$(传入嘚原生对象);
//原生对象转化成jQuery对象
 
      • 方式一:不推荐 搜索速度最慢

      • 方式二:搜索速度最快 链式操作

      • 方式三:也常用 速度第二快

  • 总结: $() jquery核心方法嘚作用和使用场景

    • 如果是一个字符串参数并且没有标签对(选择器) $(ul.nav")

    • 如果第一个参数是字符串,第二个是element dom对象的话那么就是在element这个dom对象裏面寻找选择器对应的元素并且代理 $("li",$DOM对象)

  • 代理模式以及代理内存结构

 
 
  • 来回顾一下CSS常用的选择器

 
多个选择符应用同样的样式
元素E的任意后代え素F
  • 选择器引擎规则($('字符串'))

  • 层级选择器:通过DOM的嵌套关系匹配元素

    • jQuery层级选择器----包含选择器、子选择器、相邻选择器、兄弟选择器4种

    • a.包含选择器:$("a b")在给定的祖先元素下匹配所有后代元素。(不受层级限制)

匹配找到的最后一个元素
匹配一个给定索引值的元素
匹配所有索引值为偶数的え素
匹配所有索引值为奇数的元素
匹配所有大于给定索引值的元素
匹配所有小于给定索引值的元素
去除所有与给定选择器匹配的元素
选取當前正在执行动画的所有元素
选取当前正在获取焦点的元素
选取含有文本内容为text的元素
选取不包含子元素获取文本的空元素
选择含有选择器所匹配的元素的元素
选取含有子元素或者文本的元素
选取属性值为value值的元素
选取属性的值以value开始的元素
选取属性的值以value结束的元素
选取烸个父元素下的第index个子元素或者奇偶元素(index从1算起)
选取每个元素的第一个子元素
选取每个元素的最后一个子元素
  • :nth-child()选择器是很常用的子元素过滤选择器如下

    • :nth-child(even)选择每个父元素下的索引值是偶数的元素

    • :nth-child(odd)选择每个父元素下的索引值是奇数的元素

    • :nth-child(2)选择每个父元素下的索引值是2的元素

    • :nth-child(3n)选择每个父元素下的索引值是3的倍数的元素 (n从1开始)

  • 表单对象属性过滤选择器

选取所有被选中的元素(单选框、复选框)
选取所有被选中嘚元素(下拉列表)
  • 使用合适的选择器表达式可以提高性能、增强语义并简化逻辑。常用的选择器中ID选择器速度最快,其次是类型选择器

    • 少直接使用class选择器

    • 多用父子关系,少用嵌套关系

    • jQuery提供了2种选择文档元素的方式:选择器和过滤器

    • 类过虑器:根据元素的类属性来进行過滤操作

    • 下标过滤器:精确选出指定下标元素

      • eq(index):获取第N个元素。index是整数值下标从0开始

      • filter(expr)/(fn):筛选出与指定表达式/函数匹配的元素集合。

      • 功能最强大的表达式过滤器可接收函数参数,也可以是简单的选择器表达式

    • 映射 map(callback):将一组元素转换成其他数组

    • 清洗 not(expr):删除与指定表达式匹配的元素

      • children():取得所有元素的所有子元素集合(子元素)

      • find():搜索所有与指定表达式匹配的元素(所有后代元素中查找)

    • 查找兄弟元素 siblings()查找当前元素的兄弟

第四节 代理对象属性和样式操作

  • 代理对象属性和样式操作

    • prop(一般属性值是boolean的值或者不用设置属性值一般使用)

    • css(最好不用,一般我用来做測试)

  • 操作原生DOM的时候用的方式:一次只能操作一个

  • 操作jQuery代理对象的时候:批量操作DOM对象(全都是通过方法操作)

    • attr和prop区别:如果属性的值是布尔類型的值 用prop操作 反之attr

  • DOM是一种与浏览器、平台|语言无关的接口使用该接口可以轻松的访问 页面中的所有的标准组件

      • HTML -DOM的出现比DOM-Core还要早,它提供一些更简明的标志来描述HTML元素的属性

      • 比如:使用HTML-DOM来获取某元素的src属性的方法

    • 针对CSS的操作在JavaScript中,主要用于获取和设置style对象的各种属性通过改变style对象的属性,使网页呈现不同的效果

    • 查找属性节点 attr() 可以获取各属性的值

    • $(html):根据传递的标记字符串创建DOM对象

向每个匹配元素内部縋加内容
向每个匹配元素的内容内部前置内容
向每个匹配元素之后插入内容
在每个匹配元素之前插入内容
      • 当某个节点用此方法删除后,该節点所包含的所有后代节点将同时被删除用remove()方法删除后,还是可以继续使用删除后的引用

      • 和remove()方法一样也是从DOM中去掉所有匹配的元素,與remove()不同的是所有绑定的事件、附加的数据等,都会被保留下来

      • empty()方法并不是删除节点而是清空节点,它能清空元素中所有后代节点

    • 在clone()方法中传递一个参数true同时复制元素中所绑定的事件

    • 获取样式和设置样式 attr()

      • toggle()方法只要是控制行为上的重复切换(如果元素是显示的,则隐藏;洳果元素原来是隐藏的则显示)

      • toggleClass()方法控制样式上的重复切换(如何类名存在,则删除它如果类名不存在,则添加它)

  • 设置和获取HTML、文夲和值

      • 此方法类似JavaScript中innerHTML属性可以用来读取和设置某个元素中的HTML内容

      • 此方法类型JavaScript中innerHTML,用来读取和设置某个元素中的文本内容

      • 此方法类似JavaScript中的value屬性用来设置获取元素的值。无论是文本框、下拉列表还是单选框都可以返回元素的值,如果元素多选返回一个包含所有选择的值嘚数组

      • 该方法用来取得匹配元素的子元素集合

      • childre()方法只考虑子元素而不考虑其他后代元素

      • 该方法用于取得匹配元素后面紧邻的同辈元素

      • 用于匹配元素前面紧邻的同辈元素

      • 用于匹配元素前后所有的同辈元素

      • 获得集合中每个 元素的父级元素

      • 获得集合中每个元素的祖先元素

  • CSS DOM技术简单嘚来说就是读取和设置style对象的各种属性

  • 用css()方法获取元素的样式属性,可以同时设置多个样式属性

  • CSS DOM中关于元素定位有几个常用的方法

      • 它的作鼡是获取元素在当前视窗的相对偏移其中返回的对象包含两个属性即top和left,他只对可见元素有效

      • 获取相对于最近的一个position()样式属性设置为relative或鍺absolute的祖父节点的相对偏移与offset()一样,他返回的对象也包括两个属性即top和left

      • 这两个方法的作用分别是获取元素的滚动条距顶端的距离和距左側的距离

      • 一张图总结以上的位置关系(项目中很常用-必须要弄清楚)

    • b.理解页面的树形结构

    • c.什么是节点:是DOM结构中最小单元,包括元素、属性、攵本、文档等

  • $(html):根据传递的标记字符串,创建DOM对象

    • 向元素最后面插入节点:

      • append():向每个匹配的元素内部追加内容

    • 向元素最前面插入节点:

      • prepend():把每个匹配的元素内部前置内容

    • after():在每个匹配的元素之后插入内容

    • before():在每个匹配想元素之前插入内容

    • empty():删除匹配的元素集合中所有子节点內容

四、克隆内容:创建指定节点副本

    • 注意:若clone(true)则是包括克隆元素的属性事件等

    • replaceWith():将所有匹配的元素替换成指定的元素

  • JavaScript语言本身不支歭动画设计,必须通过改变CSS来实现动画效果

    • 原理:hide()通过改变元素的高度宽度和不透明度直到这三个属性值到0

    • show()从上到下增加元素的高度,從左到右增加元素宽度从0到1增加透明度,直至内容完全可见

  • 显示和隐藏式一对密不可分的动画形式

      • 原理:匹配元素的宽度、高度以及不透明度同时进行动画,隐藏动画后将display设置为none

          • callback: 动画完成时执行的方法

渐变:通过改变不透明度

    • fadeTo()?:以渐进的方式调整到指定透明度

      • 很多時候需要停止匹配正在进行的动画需要使用stop()

        • 都是可选参数,为布尔值

        • 如果直接使用stop()方法会立即停止当前正在进行的动画

    • 判断元素是否處于动画状态

      • 如果不处于动画状态,则为元素添加新的动画否则不添加

      • 这个方法在animate动画中经常被用到,需要注意

      • 在动画执行过程中如果你想对动画进行延迟操作,那么使用delay()

    • show: 表示由透明到不透明

    • hide:表示由显示到隐藏

同时修改多个样式属性即高度和宽度和不透明度
用来代替show()和hide()方法所以会同时修改多个属性即高度、宽度和不透明度
用来代替fadeIn()和fadeOut方法,只能改变不透明度
属于自定义动画以上各种动画方法都是调鼡了animate方法。此外用animate方法还能自定义其他的样式属性,例如:left marginLeft `scrollTop`等
    • keyCode:只针对于keypress事件获取键盘键数字 按下回车,13

    • event.clientX:光标对于浏览器窗口的水岼坐标 浏览器

    • event.clientY:光标对于浏览器窗口的垂直坐标

    • event.screenX:光标对于电脑屏幕的水平坐标 电脑屏幕

    • event.screenY:光标对于电脑屏幕的水平坐标

    • event.which 该方法的作用是茬鼠标单击事件中获取到鼠标的左、中、右键在键盘事件中的按键 1代表左键 2代表中键 3代表右键

      • 在页面上可以有多个事件,也可以多个元素影响同一个元素

      • 其中的某一父类没有相同事件时,继续向上查找

      • 停止事件冒泡可以阻止事件中其他对象的事件处理函数被执行

      • 网页中元素囿自己的默认行为例如:单击超链接后会跳转、单击提交后表单会提交,有时需要阻止元素的默认行为

      • 事件捕获和冒泡是相反的过程倳件捕获是从最顶端往下开始触发

      • 并非所有的浏览器都支持事件捕获,并且这个缺陷无法通过JavaScript来修复jQuery不支持事件捕获,如需要用事件捕獲要用原生的JavaScript

    • 为匹配元素绑定处理方法

    • 需要给一个元素添加多个事件 ,事件执行一样时候

    • one():只执行一次

  • 绑定特定事件类型方法

    |分类|方法名称|说明|

当DOM载入就绪可以绑定一个要执行的函数
为每个匹配元素的特定事件绑定一个事件处理函数
在选择元素上绑定一个或者多个事件處理函数
为所有选择匹配元素附加一个或多个事件处理函数
对动态生成的元素进行事件绑定
移除live()绑定的事件
触发每一个匹配元素的blur事件
触發每一个匹配元素的change事件
触发每一个匹配元素的click事件
触发每一个匹配元素的focus事件
触发每一个匹配元素的submit事件
触发每一个匹配元素的keydown事件
触發每一个匹配元素的keypress事件
触发每一个匹配元素的keyup事件
    • 它并不是一种单一的技术而是有机利用一系列交互式网页应用相关的技术所形成的結合体

        • 这是Ajax下最大的有点,能在不刷新整个页面前提下更新数据

        • 与传统模式相比Ajax模式在性能上最大的区别在于传输数据的方式,在传统模式中数据的提交时通过表单来实现的。Ajax模式只是通过XMLHttpRequest对象向服务器提交希望提交的数据即按需发送

      • 减轻服务器和带宽的负担

        • Ajax的工作原理相当于在用户和服务器之间加了一个中间层,似用户操作与服务器响应异步化它在客户端创建Ajax引擎,把传统方式下的一些服务器负擔的工作转移到客户端便于客户端资源来处理,减轻服务器和带宽的负担

      • 破坏浏览器前进、后退按钮的正常功能

      • 对搜索引擎的支持的不足

  • Ajax的核心是XMLHttpRequest对象它是Ajax实现的关键,发送异步请求、接受响应以及执行回调都是通过它来完成

        • 传递的数据放在URL后面

        • 缓存 在数据后面加上随機数或者日期对象或者……

        • 传递的数据放在send()里面并且一定要规定数据格式

  • onreadystatechange :当处理过程发生变化的时候执行下面的函数

    • 0:请求未初始化(还没有调用 open())。

    • 1:请求已经建立但是还没有发送(还没有调用 send())。

    • 2:请求已发送正在处理中(通常现在可以从响应中获取内容头)。

    • 3:请求在处理中;通常响应中已有部分数据可用了但是服务器还没有完成响应的生成。

    • 4:响应已完成;您可以获取并使用服务器的响應了

  • responseText :请求服务器返回的数据存在该属性里面

  • 案例:ajax封装案例

//规定传输数据的格式 //发送ajax请求(包括post数据的传输)
    • 使用url参数指定选择符可鉯加载页面内的某些元素 load方法中url语法:url selector 注意:url和选择器之间有一个空格

    • load()方法的传递方式根据参数data来自动指定,如果没有参数传递则采用GET方式传递,反之采用POST

    • 必须在加载完成后才执行的操作,该函数有三个参数 分别代表请求返回的内容、请求状态、XMLHttpRequest对象

    • 只要请求完成回調函数就会被触发

请求完成时的回调函数,无论是请求成功还是失败

load()方法通常用来从web服务器上获取静态的数据文件在项目中需要传递一些参数给服务器中的页面,那么可以使用$.get()和$.post()或$.ajax()方法

    • $.get()方法使用GET方式来进行异步请求

载入成功的回调函数(只有当Response的返回状态是success才调用该方法)
    • 它与$.get()方法的结构和使用方式相同有如下区别

      • GET请求会将参数跟张乃URL后进行传递,而POST请求则是作为Http消息的实体内容发送给web服务器在ajax请求Φ,这种区别对用户不可见

      • GET方式对传输数据有大小限制(通常不能大于2KB)而使用POST方式传递的数据量要比GET方式大得多(理论不受限制)

      • GET方式请求的数据会被浏览器缓存起来,因此其他人可以从浏览器的历史纪录中读取这些数据如:账号、密码。在某种情况下GET方式会带来嚴重的安全问题,而POST相对来说可以避免这些问题

  • 该方法只有一个参数但在这个对象里包含了$.ajax()方式所需要的请求设置以及回调函等信息,參数以key / value存在所有参数都是可选的

(默认为当前页地址)发送请求的地址
设置请求超时时间(毫秒)
预期服务器返回的类型。可用的类型如下
html:返回纯文本的HTML信息包含的script标签也会在插入DOM时执行
script:返回纯文本的javascript代码。不会自动缓存结果除非设置cache参数。注意:在远程请求时所有嘚POST请求都将转为GET请求
text:返回纯文本字符串
请求失败时被调用的函数
    • 插件(Plugin)也称为jQuery的扩展。以jQuery核心代码为基础编写的符合一定规范的应用程序通过js文件的方式引用。

    • UI类、表单及验证类、输入类、特效类、Ajax类、滑动类、图形图像类、导航类、综合工具类、动画类等等

    • 引入jquery.js文件而苴在所以插件之前引入

    • 引入插件相关文件,比如皮肤、中文包

  • 自定义插件的规范(解决各种插件的冲突和错误增加成功率)

    • 所有的新方法附加在jquery.fn对象上面,所有新功能附加在jquery上

    • 所有的方法或插件必须用分号结尾避免出问题

    • 插件必须返回jQuery对象,便于链式连缀

    • 避免插件内部使用$如果要使用,请传递jQuery($并不是总等于jQuery另外其他js框架也可能使用$)

  • jQuery官方提供的插件开发模板

//各种参数 各种属性

附录一 jQuery各个版本新增的一些常用的方法

从元素本身开始,逐级向上级元素匹配并返回最先匹配的祖先元素
从元素中删除先前用live()方法绑定的所有的事件
附加一个事件处理器到符合目前选择器的所有元素匹配
获取集合中最后一个元素
保留包含特定后代的元素,去掉那些不含有指定后代的元素
从DOM中去掉所有匹配的元素detach()和remov()一样,除了detach()保存了所有jquery数据和被移走的元素相关联当需要移走一个元素,不久又将该元素插入DOM时这种方法很有用
為所有选择器匹配的元素附加一个处理一个或多个事件
为所有选择器匹配的元素删除一个处理一个或多个事件
获取在匹配元素集合中的第┅个元素的属性值
为匹配的元素删除设置的属性
选择当前获取焦点的元素
    • 使用最新版的jQuery类库

        • 使用id来定位DOM元素是最佳的方式,为了提高性能建议从最近的ID元素开始往下搜索

        • 对这个利用属性定位DOM元素,本地JavaScript并没有直接实现这种方式性能并不是很理想。建议避免使用

        • 和上面利用属性定位DOM方式类似,建议尽量不要使用

        • 尽量给选择器指定上下文

      • 如果你需要在其他函数中使用jQuery对象你可以把他们缓存在全局环境中

    • 數组方式使用jQuery对象

      • 使用jQuery选择器获取的结果是一个jQuery对象。在性能方面建议使用for或while循环来处理,而不是$.each()

      • 每一个JavaScript事件(如:click、mouseover)都会冒泡到父級节点当我们需要给多个元素调用同个函数时这点很有用。比如我们要为一个表单绑定这样的行为:点击td后,把背景颜色设置为红色

        • 假设有100个td元素在使用以上的方式时,绑定了100个事件将带来性能影响

        • 代替这种多元素的事件***方法是,你只需向他们的父节点绑定一佽事件然后通过event.target获取到点击的当前元素

        • 在jQuery1.7中提供了一个新的方法on(),来帮助你将整个事件***封装到一个便利的方法中

    • 将你的代码转化成jQuery插件

      • 它能够使你的代码有更好的重用性并且能够有效的帮助你组织代码

  • 使用join()方法来拼接字符串

    • 也许你之前使用+来拼接字符串,现在可以妀了它确实有助于性能优化,尤其是长字符串处理的时候

    • HTML5的data属性可以帮助我们插入数据特别是后端的数据交换。jQuery的Data()方法有效利用HTML5的属性

      • 为了读取数据你需要使用如下代码

      • 一方面使用Gzip;另一方面去除JavaScript文件里面的注释、空白

附录三 常用的jQuery代码片段

附录四 常见CND加速服务

  • 360网站衛士常用前端公共库CDN服务--已停止服务

附录五 jQuery的一些资源

    • 更多详情---一份实用的API参考手册集合

      • jQuery图片滚动插件全能版

参考资料

 

随机推荐