jQuery学习笔记
来源:互联网 发布:淘宝怎样和卖家联系 编辑:程序博客网 时间:2024/06/10 00:37
7 jQuery
7.1 jQuery简介
用途:访问和操作DOM元素、控制页面样式、对页面事件的处理、方便的使用jQuery插件、与Ajax技术完美结合。
优势:轻量级、强大的选择器、出色的DOM封装、可靠的事件处理机制、隐式迭代、丰富的插件支持、不存在浏览器兼容性问题
引入方式:<script src="../../js/jquery-3.2.0.js"></script> 主函数:把整个文档加载完毕后才会执行主函数 ① $(document).ready(function(){ }) ② $(function(){ })//简写方式
jQuery对象就是通过jQuery包装DOM对象后产生的对象。但是jQuery对象无法使用DOM对象的任何方法,DOM也无法用jQuery的方法。
//jQuery对象与DOM对象的转换1、DOM对象转换为jQuery对象;对于一个DOM对象,需要使用$()将其包装起来,即转为jQuery对象。 var test=document.getElementById("my"); //通过ID获取DOM对象 var jtest=$(test); //DOM对象转为jQuery对象2、jQuery对象转成DOM对象;[index]和get(index); ① jQuery对象是一个数组对象;可以使用下标方式获取 jtest[0].value; //可以获取test的value值 ② jQuery本身提供get(index)方法得到对应的DOM对象 jtest.get(0).value;//图片轮播效果 $("li").mouseover(function(){ var flag=$(this).text(); $(this).css("background","yellow"); $(this).siblings().css("background","#333333"); $(".adver").css("background","url(images/"+imgs[flag-1]+")"); });//点击左右按钮切换图片 $(function(){ var imgs=["adver01.jpg","adver02.jpg","adver03.jpg", "adver04.jpg","adver05.jpg","adver06.jpg"]; var flag=0; $(".arrowRight").click(function(){ if(flag==imgs.length-1){ flag=0; }else{ flag++; } var i=flag+1; $(".adver").css("background","url(images/"+imgs[flag]+")"); $("li:nth-of-type("+i+")").css("background","orange"); $("li:nth-of-type("+i+")").siblings().css("background","#333333"); }); $(".arrowLeft").click(function(){ if(flag==0){ flag=imgs.length-1; }else{ flag--; } var i=flag+1; $(".adver").css("background","url(images/"+imgs[flag]+")"); $("li:nth-of-type("+i+")").css("background","orange"); $("li:nth-of-type("+i+")").siblings().css("background","#333333"); }); $(".adver").mouseover(function(){ $(".arrowLeft").show(); $(".arrowRight").show(); }).mouseout(function(){ $(".arrowLeft").hide(); $(".arrowRight").hide(); }); });
7.2 jQuery选择器
jQuery选择器是jQuery的根基,在jQuery中对事件的处理,遍历DOM和Ajax都依赖于选择器。
7.2.1 基本选择器
1、id选择器:$(“#id”) 类似于document.getElementById(“#id”)
2、元素选择器:$(“div”) 类似于document.getElementsByTagName(“#id”)
获得所有页面中的div元素,返回值是一个数组。遍历:var divs=$("div");for(var i=0;i<divs.length;i++){ //此时divs[i]已经转换为DOM对象,所以可以使用DOM方法value alert(divs[i].value); }jQuery提供遍历方式:each()方法;以每一个元素作为上下文执行函数;每次执行传递进来的函数时,函数中的this关键字指向一个不同的DOM元素(每次都是一个不同的匹配元素)。返回值是boolean类型,false停止循环;true进行下一个循环。divs.each(function (){ var obj=$(this); alert(obj.val()+"\n"+obj.html()); //val方法返回obj的value值;html返回标签内容;相当于innerHTML return false;//跳出循环})
3、class选择器:$(“.class”)类似于document.getElementsByClassName(“.class”)
4、选择器 $(““) 匹配所有元素,多用于结合上下文搜索。不常用
5、多种选择器叠加;使用”,”分隔 $(“#id,div,.class”)返回数组
7.2.2 层次、属性选择器
7.2.3 过滤选择器
7.2.4 表单选择器
7.3 jQuery操作DOM
7.3.1基础 DOM 和 CSS 操作
//如果想设置多个选项的选定状态,比如下拉列表、单选复选框等等,可以通过数组传递操作$("input").val(["男","check2", "radio1" ]);//value 值是这些的将被选定
在CSS获取时可以获取多个CSS样式,而获取到的是一个对象数组,传统方式解析需要使用 for in 遍历var box = $('div').css(['color', 'height', 'width']); //得到多个 CSS 样式的数组对象for (var i in box) { alert(i + ':' + box[i]);//逐个遍历出来}jQuery提供了$.each()方法专门用来处理JavaScript原生对象数组,这个方法可以轻松的遍历对象数组。$.each(box, function (attr, value) { alert(attr + ':' + value);//遍历 JavaScript 原生态的对象数组});jQuery 对象的数组使用.each()方法:$('div').each(function (index, element) { //index 为索引,element 为元素 DOM alert(index + ':' + element);});默认的 CSS 类切换只能是无样式和指定样式之间的切换,如果想实现样式 1 和样式 2之间的切换还必须自己写一些逻辑。$('div').click(function () { $(this).toggleClass('red size'); //一开始切换到样式 2 if ($(this).hasClass('red')) { //判断样式 2 存在后 $(this).removeClass('blue'); //删除样式 1 } else { $(this).toggleClass('blue'); //添加样式 1,这里也可以 addClass }});$('strong').offset().left; //相对于视口的偏移$('strong').position().left; //相对于父元素的偏移$(window).scrollTop(); //获取当前滚动条的位置$(window).scrollTop(300); //设置当前滚动条的位置
7.3.2 DOM节点操作
在创建或克隆一个新节点时;如 var box=$(“
注意.wrap()和.wrapAll()的区别在前者把每个元素当成一个独立体,分别包含一层外层;后者将所有元素作为一个整体作为一个独立体,只包含一层外层。这两种都是在外层包含,而.wrapInner()在内层包含。.remove()和.detach()都是删除节点,而删除后本身方法可以返回当前被删除的节点对象,但区别在于前者在恢复时不保留事件行为,后者则保留。
7.4 jQuery事件对象
7.4.1 基础事件
鼠标移入移出的四个事件的区别:当触发事件的元素为单一元素时,没有区别;当触发事件的元素包含子元素时:.mouseenter()和.mouseleave()这组穿过子元素不会触发,而.mouseover()和.mouseout()则会触发。hover方法中封装的就是mouseenter和mouseleave方法。 .keydown()、.keyup()返回的是键码,而.keypress()返回的是字符编码。当触发方法中含有事件参数event或e时,keydown、keyup使用e.keyCode,而keypress使用e.charCode;不可互换 .focus()和.blur()分别表示光标激活和丢失,事件触发时机是当前元素。而.focusin()和.focusout()也表示光标激活和丢失,但事件触发时机可以是子元素。 .toggle()这个方法比较特殊,这个方法有两层含义,第一层含义就是已经被 1.8 版废用、1.9 版删除掉的用法,也就是点击切换复合事件的用法。第二层含义表示隐藏触发该方法的元素。既然废弃掉了,就不应该使用。如果想要使用被废弃的方法;可以下载 jquery-migrate.js文件,来向下兼容已被删除掉的方法;也可以使用1.8版本的js文件。 由于官方已经删除掉这个方法,所以也是不推荐使用的,可以通过以下方法实现这个功能。 var flag = 1; //计数器 $('div').click(function () { if (flag == 1) { //第一次点击 $(this).css('background', 'black'); flag = 2; } else if (flag == 2) { //第二次点击 $(this).css('background', 'blue'); flag = 3 } else if (flag == 3) { //第三次点击 $(this).css('background', 'red'); flag = 1 } });
7.4.2 事件对象
JavaScript 在事件处理函数中默认传递了 event 对象,也就是事件对象。但由于浏览器的兼容性,开发者总是会做兼容方面的处理。jQuery 在封装的时候,解决了这些问题,并且还创建了一些非常好用的属性和方法。
通过 event.data 获取额外数据,可以是数字、字符串、数组、对象$('input').bind('click', 123, function () { //传递 data 数据 alert(e.data); //获取数字数据}); /*注意:如果字符串就传递:'123'、如果是数组就传递:[123,'abc'],如果是对象就传递:{user : 'Lee', age : 100}。数组的调用方式是:e.data[1],对象的调用方式是:e.data.user。event.data 获取额外数据,对于封装的简写事件也可以使用*/$('input').click({user : 'Lee', age : 100},function (e) { alert(e.data.user);});键值对的键可以加上引号,也可以不加;在调用的时候也可以使用数组的方式:alert(e.data['user']); 注意:event.target 得到的是触发元素的 DOM,event.currentTarget 得到的是监听元素的DOM。而 this 也是得到监听元素的 DOM。 如果在页面中重叠了多个元素,并且重叠的这些元素都绑定了同一个事件,那么就会出现冒泡问题。触发的顺序是从小范围到大范围;这就是所谓的冒泡现象,一层一层往上。 注意:如果想让上面的超链接同时阻止默认行为且禁止冒泡行为,可以把两个方法同时写上: event.stopPropagation()和 event.preventDefault()。 这两个方法如果需要同时启用的时候,还有一种简写方案代替,就是直接 return false。
- 【学习笔记】JQuery学习笔记
- jQuery 学习笔记 + jQuery-UI 学习笔记
- 【jQuery 学习笔记】初识jQuery
- jQuery 学习笔记------jQuery选择器
- jquery学习笔记----初识jquery
- jQuery学习笔记--jQuery Ajax
- jquery学习笔记
- jquery选择器学习笔记
- jQuery学习笔记
- 【jquery】学习笔记
- jQuery学习笔记
- jquery学习笔记
- jquery 学习笔记
- JQuery学习笔记
- Jquery学习笔记
- JQuery学习笔记
- jQuery学习笔记
- jquery学习笔记(二)
- 网络是否连接
- 西电捷通:一文读懂数字证书通用管理技术基础常识
- Struts(5)Struts标签介绍
- yii2 命令行运行
- getDimension()、getDimensionPixelOffset()和getDimensionPixelSize()区别详解
- jQuery学习笔记
- Data Integration学习笔记 --- OLAP联机分析处理
- C++实验5-数组分离
- Android最佳性能实践(二)——分析内存的使用情况
- JS Q&A小记录
- 博客搬家
- 318. Maximum Product of Word Lengths
- SCORM标准课件制作
- Deep Joint Face Hallucination and Recognition——阅读笔记