“第57天JQuery(02)学习笔记”
今天主要内容
- jQuery操作标签
- jQuery绑定事件
- jQuery补充知识点
- jQuery动画效果(了解)
- Bootstrap(前端框架)开头
1 JQuery练习题
练习题页面的源码
找到本页面中id是i1
的标签
找到本页面中所有的h2
标签
找到本页面中所有的input
标签
找到本页面所有样式类中有c1
的标签
找到本页面所有样式类中有btn-default
的标签
找到本页面所有样式类中有c1
的标签和所有h2
标签
找到本页面所有样式类中有c1
的标签和id是p3
的标签
找到本页面所有样式类中有c1
的标签和所有样式类中有btn
的标签
找到本页面中form
标签中的所有input
标签
找到本页面中被包裹在label
标签内的input
标签
找到本页面中紧挨在label
标签后面的input
标签
找到本页面中id为p2
的标签后面所有和它同级的li
标签
找到id值为f1
的标签内部的第一个input标签
找到id值为my-checkbox
的标签内部最后一个input标签
找到id值为my-checkbox
的标签内部没有被选中的那个input标签
找到所有含有input
标签的label
标签
2 JQuery操作标签
2.1 操作Class
JQuery操作类主要有四个方法:
JQuery方法 |
JS方法 |
作用 |
addClass() |
classList.add() |
添加类 |
removeClass() |
classList.remove() |
移除类 |
hasClass() |
classList.contains() |
查询是否包含某个类 |
toggleClass() |
classList.toggle() |
有则移除,无则添加 |
操作案例如下:
页面代码
操作类:
2.2 操作CSS
JQuery操作CSS的方式:
案例如下:
操作CSS:
也可以连起来操作
补充:
为什么JQuery可以连起来操作?
因为操作完之后返回的还是JQuery对象
实际上是一种链式操作,用Python的方式还原,如下代码:
2.3 操作位置
操作位置需要了解
方法 |
作用 |
offset() |
相较于浏览器窗口,移动位置 |
position() |
相对于父标签,移动位置 |
scrollTop() |
获取/设置滚动条的位置(左右) |
scrollLeft() |
获取/设置滚动条的位置(上下) |
2.3.1 offset()和position()案例
页面代码如下:
操作代码:
页面代码如下:
获取当前窗口下拉框的位置
设置当前窗口下拉框的位置
2.4 操作尺寸
操作标签尺寸的方法有如下:
方法 |
作用 |
height() |
设置标签内容的宽度 |
width() |
设置标签内容的高度 |
innerHeight() |
设置标签内高 |
innerWidth() |
设置标签内宽 |
outerHeight() |
设置标签外高 |
outerWidth() |
设置标签外宽 |
关于这些方法控制的位置,图示图下:
案例代码如下:
2.5 文本操作
主要方法如下
方法 |
作用 |
text() |
获取标签内的文本 |
html() |
获取标签内的HTML代码 |
案例代码:
HTML:
JS:
2.6 操作Value
JQuery中使用val()
方法获取input
标签的value
属性值
案例HTML代码:
普通输入框-值操作
文件选择框的值操作
2.7 操作属性
有如下方法:
方法 |
作用 |
attr(name, value) |
设置属性name的value |
attr(name) |
获取属性name的值 |
removeAttr(name) |
移除name属性 |
仍用2.6的HTML代码,操作案例如下:
**特殊情况说明**:
- 对于标签上有的能够看到的属性和自定义属性用attr
- 对于返回布尔值比如checkbox radio option是否被选中用prop
案例代码如下:
什么问题?
使用prop()
尝试
2.8 文档处理
文档处理常用操作
方法 |
作用 |
$(‘ ‘) |
创建标签,相当于JS的createElement(‘p’) |
append($pEle) |
内部尾部追加元素,相当于appendChild() |
prepend($pEle) |
内部头部追加元素 |
after($pEle) |
放在某个标签后面 |
insertAfter($(‘#d1’)) |
|
before($pEle) |
放在某个标签前面 |
$(‘#d1’).remove() |
将标签从DOM树中删除 |
$(‘#d1’).empty() |
清空标签内部所有的内容 |
案例代码如下:
3 JQuery事件
3.1 事件触发
触发事件有两种方式
第一种
第二种(功能更加强大 还支持事件委托)
3.2 克隆事件
3.3 自定义模态框
左侧菜单
返回顶部
自定义登陆校验
input实时监控
hover事件
键盘按键按下事件
3.4 阻止后续事件执行
以案例说明,点击按钮后,本应将span(d1)的文本设置成’宝贝 你能看到我吗?’,但由于后续submit的提交事件执行,页面将刷新,导致设置的文本消失:
提交前:
提交后:
半秒后:
如何解决这个问题,停止后续的submit操作?
- return false
- e.preventDefault()
案例代码如下:
3.5 阻止事件冒泡
以案例说明,由于d1、d2、 d3是嵌套关系,当点击d3触发click事件后,页面显示alert(‘span’),然后alert(‘p’),最后alert(‘div’),将alert三次。
怎么解决这个问题,实现只触发#d3的alert?
- return false
- e.stopPropagation()
案例代码如下:
3.6 事件委托
正常情况下,我们帮一个按钮添加点击事件,只需给按钮绑定事件即可,即:
但是,假如我们动态创建了button按钮,这种绑定方式对后续动态生成的button
是无效的
需要使用事件委托:
4 补充
4.1 页面加载
等页面元素加载完毕后,再调用JS代码。
在原生JS中,我们使用:
在JQuery中有三种方式
4.2 动画效果
给元素添加淡入淡出
、隐藏/出现
等效果
案例代码如下:
4.3 遍历元素
案例代码如下: