发布时间:2025-12-10 11:42:45 浏览次数:2
对于刚刚学习前端的人来说,Jquery 一般是我们接触的第一个js框架
Js框架:针对web编程中,一些特定的功能,把js原生的方法和功能进行封装;使其更简单,更方便,更高效;
Js框架一般能够把一些重复性的东西封装在一起,而且会解决这个兼容性问题;
国外:prototype、extjs(适合企业级的开发)、dojo、mootools、jQuery、YUI(Yahoo User Interface)、angularjs、Vue.js
国内:Kissy(淘宝)、Tangram(百度)、JX(腾讯)
针对的问题:
学习态度:把最常用,最经典的方法记下来;对于更新的内容,要查文档;
jQuery是一个兼容多浏览器的JavaScript框架。可以使用户方便地处理HTML、事件,实现动画效果,并且为网站提供方便的Ajax交互。
官网:http://jquery.com/
1.0 ~ 小改动的升级
2.0 主要面向的是移动端
jQuery2.0及以后不支持IE 6 7 8.
Write Less, Do More.
写的少,做的多。
jQuery的作者:John Resig
轻量级
出色的浏览器兼容性
强大的选择器
出色的DOM操作封装
完善的ajax
链式编程
隐式迭代(无需for循环遍历dom对象)
完善的文档、强大的社区
丰富的插件
其实jquery 就是一份 内容不超过100k的一份js文件,这个文件里有各种各样的方法;
这些方法能方便我们去更快刚好的编程;
实现一个点击显示隐藏元素的效果;
1.先引入jquery 用的是js的引入方式
<script src=”jquery路径”></script>
2.用jquery去编程;
1.jquery会提供一个 对象 叫 $,它有个别名叫 jquery
2.Jquery 使用$去获得我们需要用到的元素 $(‘选择器’) 把得到的元素称之为jq对象;
3.Jq提供的所有的方法只能由jq对象调用 jq对象.jq方法();
主要学习的有两样东西
Jq提供的基础方法(用$el表示jq对象)
click方法 el.click(匿名函数);把匿名函数当做el.click(匿名函数); 把匿名函数当做el.click(匿名函数);把匿名函数当做el的点击事件处理函数
hide方法 el.hide();让el.hide(); 让el.hide();让el消失
show方法 el.show();让el.show(); 让el.show();让el显示
toggle方法 $el.toggle(); 若果元素是显示的,那么就让元素消失,如果元素是消失状态,那就让元素显示。如果给toggle传参数 传的是一个毫秒数 有动画的显示或隐藏;
用jquery去设置和获取css样式
$el.css(); 可以获取css的样式也可以 设置css的样式
只针对的是行内样式; <p style=”css样式”></p>
什么是html标签中的内容
$el.html();:操作html标签中的内容
Js是如何操作的------用 innerHTML
访问
$el.html();:这个方法调用后 会换返回$el这个标签中的内容
修改内容
$el.html(‘新的内容’); 会把标签中原来的内容给替换掉;
什么是标签属性
如何操作这些标签属性?
原生js如何操作:getAttribute()
setAttribute()
访问
el.attr(‘标签属性名’);会返回el.attr(‘标签属性名’); 会返回el.attr(‘标签属性名’);会返回el这个元素上的标签对应的属性值;
修改
$el.attr(标签属性名,标签的属性的新值);
对标签的操作 无非就是三类的操作
Id class 标签 后代 交集 并集选择器,只要是css支持的选择器放在 jquery中都是起作用的;
$(‘id选择器’)
$(‘#box p’)
使用了css的选择器方式 选中的元素,要么是一个要么是多个。在jquery中如果是一个就对一个进行操作,如果是多个就进行批量的操作;
分类:
过滤:把杂质(不符合条件的给去掉),剩下复合条件的;类似于有一堆污水(泥、杂草、石头 。。。) 变成清水
1.用一个滤网把杂草、石头过滤掉,剩下的是比较浑浊的水
2.精滤网把泥过滤掉
3.活性炭 吸附杂质
4.。。。。。
最终剩下的就是清水(符合条件的东西)
eq(索引)
如何去理解这个索引
1.这个索引跟页面中的标签结构没有关系;
2.跟已经选择到的元素有关系;
3.索引都是从0开始的;
PS:过滤选择器是层层过滤的,每次过滤之后,索引值会从新排序。
两大类 他们的数字都跟元素的结构相关
Index() 返回jq对象对应的元素在父元素中的索引;
原生js中 this存在于函数中的,指的是当前函数的拥有者
在jquery中 $(this)存在于函数中的,指的是当前函数的拥有者(jquery对象)
希望在一行内把要执行的内容写完;
原生js的书写风格:
链式调用的一个图示:
slide的运动形式是上下滑动方式的;
1.每个选择框都有一个选中和没有被选中的功能;
2.子选择框中的每个选择框互相之间没有影响;
3.主选择框的状态决定了子选择框的状态
4.主选择框表示的全部选中,只有没选中的子选择框,主选择框的状态没选中
模拟选择框:
增
删
改
查
复制
原生js中dom操作的方法
增 appendChild insertBefore
删 removeChild
改 replaceChild
查 getElementById
赋值 cloneNode
利用jquery的选择器 $(‘选择器’) 去选择元素 得到的结果 是jq对象
增加元素的步骤
1.创建一个元素
原生js document.createElement(‘标签名’);
Jquery $(‘写完整的标签’) $(‘
var res=$('<li>1</li>')
2.把元素添加进页面
标签的属性操作
$el.html()对标签之间的内容进行操作
$el.text() 对标签之间的文本进行操作
操作css样式
原生js里边 如何控制页面的滚动条滚动
Documnet.body.scrollTop 赋值
Document.documentElement.scrollTop 赋值
jquery控制页面滚动条的滚动(有动画效果)
$(‘html,body’).animate({scrollTop:300});
应用:回到页面顶部
offset() 表示的一个距离
position()
1.先找定位父级
2.元素相对于定位父级的坐标
用法;
$el.click(function(){});
$el.以事件类型命名的方法(function(){}); 传入的匿名函数就是事件触发时候要执行的函数;
原生js添加事件(兼容):
针对ie浏览器的, attachEvent
标准浏览器 addEventListener
在使用jquery的时候就不用考虑兼容问题了
Jquery中 $() 括号中的内容什么时候加引号 什么时候不加?
1.如果是选择的话那么一定要加引号
2.如果是对象的话那不能加 window this document
在js中
1.加引号表示的就是字符串 ‘if’
2.不加引号 关键字(this if for else while do break continue return var function Object Array)
变量名
keydown和keypress 都是按键按下事件
区别 keypress对功能键不起 作用;
mouseover和 mouseout (有bug的)
在一个父元素内有个子元素
正常情况:
mouseover和 mouseout 存在bug
+移入父元素触发父元素的over,
+再移入到子元素,父元素触发out事件,再触发over事件,子元素触发over事件
+从子元素移到父元素,父元素触发out事件,再触发over事件,子元素触发out事件
+移出父元素,父元素触发out事件,子元素不触发任何事件;
mouseenter和mouseleave
$el.mouseenter(function(){}); $el.mouseleave(function(){});
触发情况就是正常情况
+移入父元素触发父元素的over,
+再移入到子元素,父元素不再触发任何事件,子元素触发over事件
+从子元素移到父元素,父元素不触发任何事件,子元素触发out事件
+移出父元素,父元素触发out事件,子元素不触发任何事件;
hover 移入移出事件
$el.hover(function(){},function(){});
开发正常使用的时候:
用on 就可以了 $el(‘事件类型’,fn)
关于堆内存中的引用数据类型
下边的场景,添加进来的新 的li元素内的span 是没有 点击事件的;
造成的后果是 新添加的元素不能被删除
需要用事件委托 去解决这个问题
事件委托:把本来要加给一堆子元素的事件 委托给他们的祖先元素,这个事件就由祖先元素去管理;
优势:
1.效率变高了
2.更方便了(父元素有了这个事件,那么所有的子元素都会分配到这个事件,不管是不是新添加的)
语法:
$el表示的是祖先元素
$el.on(‘事件类型’,’选择器’,fn);
事件对象:记录本次事件发生的所有相关的信息
如何获取:事件处理函数接受的参数(形参)
键盘的每个按键都有一个 code值
Ev.keyCode 表示键盘的code值
Ev.stopPropagation(); 阻止事件冒泡
Ev.preventDefault();阻止默认事件
return false;
鼠标的坐标 跟事件对象相关
Ev.clientX
Ev.clientY
1.jquery是一份js 提供了方便的dom操作
1.动画类 show() hide() toggle slideDown slideUp slideToggle fadeIn fadeOut
Animate 动画队列 停止动画的方法 stop stop(true) finish
2.dom操作类
3.添加事件
$el.事件类型为方法名();
Bind unbind on(事件委托) off
Mouserover mouseout 有bug 用mouseenter mouserleave
事件对象
获取方式 :
1.发生事件的位置 ev.target
2.鼠标的坐标 ev.clientX ev.clientY
3.键盘的code值: ev.keyCode
4.阻止默认事件 ev.preventDefault()
5.阻止冒泡 ev.stopPropagation();