jQuery
目录
jQuery
1、什么是JQuery
是JavaScript世界中使用最广泛的一个库。
jQuery能帮我们干这些事情:
- 消除浏览器差异:你不需要自己写冗长的代码来针对不同的浏览器来绑定事件,编写A JAX等代码;
- 简洁的操作DOM的方法:写$('#test') 肯定比document.getElementById('test') 来得简洁;
- 轻松实现动画、修改CSS等各种操作。
jQuery只是一个jquery-xxx.js 文件,使用jQuery只需要在页面的head 引入jQuery文件即可:
公式:$(selector).action()
- 美元符号定义 jQuery
- 选择符(selector)"查询"和"查找" HTML 元素
- jQuery 的 action() 执行对元素的操作
2、选择器
选择器是jQuery的核心。
DOM操作中我们经常使用的代码:
jQuery的选择器就是帮助我们快速定位到一个或多个DOM节点。
按ID查找
如果某个DOM节点有id 属性,利用jQuery查找如下
按tag查找
按tag查找只需要写上tag名称就可以了:
按class查找
按class查找注意在class名称前加一个.
按属性查找
一个DOM节点除了id 和class 外还可以有很多属性,很多时候按属性查找会非常方便,比如在一个表单中按属性来查找:
当属性的值包含空格等特殊字符时,需要用双引号括起来。
按属性查找还可以使用前缀查找或者后缀查找:
3、操作DOM
修改Text和HTML
jQuery对象的text() 和html() 方法分别获取节点的文本和原始HTML文本,例如,如下的HTML结构:
分别获取文本和HTML:
jQuery的API设计非常巧妙:无参数调用text() 是获取文本,传入参数就变成设置文本,HTML也是类似操作
一个jQuery对象可以包含0个或任意个DOM对象,它的方法实际上会作用在对应的每个DOM节点上。
修改CSS
jQuery对象有“批量操作”的特点,这用于修改CSS实在是太方便。
要高亮显示动态语言,调用jQuery对象的css('name', 'value') 方法,我们用一行语句实现:
注意,jQuery对象的所有方法都返回一个jQuery对象(可能是新的也可能是自身),这样我们可以进行链式调用,非常方便。
jQuery对象的css() 方法可以这么用:
css() 方法将作用于DOM节点的style 属性,具有最高优先级。如果要修改class 属性,可以用jQuery提供的下列方法:
显示和隐藏DOM
- 要隐藏一个DOM,我们可以设置CSS的display 属性为none ,利用css() 方法就可以实现。
- 要显示这个DOM就需要恢复原有的display 属性,这就得先记下来原有的display 属性到底是block 还是inline 还是别的值。
- 考虑到显示和隐藏DOM元素使用非常普遍,jQuery直接提供show() 和hide() 方法,我们不用关心它是如何修改display 属性的,总之它能正常工作
注意,隐藏DOM节点并未改变DOM树的结构,它只影响DOM节点的显示。这和删除DOM节点是不同的。
获取DOM信息
利用jQuery对象的若干方法,我们直接可以获取DOM的高宽等信息,而无需针对不同浏览器编写特定代码
attr() 和removeAttr() 方法用于操作DOM节点的属性:
操作表单
对于表单元素,jQuery对象统一提供val() 方法获取和设置对应的value 属性:
一个val() 就统一了各种输入框的取值和赋值的问题。
添加DOM
要添加新的DOM节点,除了通过jQuery的html() 这种暴力方法外,还可以用append() 方法,例如:
向列表新增一个语言,首先要拿到<ul> 节点
然后,调用append() 传入HTML片段:
append() 把DOM添加到最后, prepend() 则把DOM添加到最前。
如果要把新节点插入到指定位置,例如,JavaScript和Python之间,那么,可以先定位到JavaScript,然后用after() 方法
也就是说,同级节点可以用after() 或者before() 方法。
删除节点
要删除DOM节点,拿到jQuery对象后直接调用remove() 方法就可以了。如果jQuery对象包含若干DOM节点,实际上可以一次删除多个DOM节点:
4、事件
Query能够绑定的事件主要包括:
鼠标事件
- click: 鼠标单击时触发;
- dblclick:鼠标双击时触发;
- mouseenter:鼠标进入时触发;
- mouseleave:鼠标移出时触发;
- mousemove:鼠标在DOM内部移动时触发;
- hover:鼠标进入和退出时触发两个函数,相当于mouseenter加上mouseleave。
键盘事件
键盘事件仅作用在当前焦点的DOM上,通常是和
- keydown:键盘按下时触发;
- keyup:键盘松开时触发;
- keypress:按一次键后触发。
其他事件
- focus:当DOM获得焦点时触发;
- blur:当DOM失去焦点时触发;
- change:当、或的内容改变时触发;
- submit:当提交时触发;
- ready:当页面被载入并且DOM树完成初始化后触发。
初始化事件
我们自己的初始化代码必须放到document 对象的ready 事件中,保证DOM已完成初始化:
由于ready 事件使用非常普遍,所以可以这样简化:
甚至还可以再简化为:
事件参数
有些事件,如mousemove 和keypress ,我们需要获取鼠标位置和按键的值。所有事件都会传入Event 对象作为参数,可以从Event 对象上获取到更多的信息: