js 五 jquery的使用,调用
4 this 关键字 this 表示当前函数或方法的调用者 1 全局函数由window调用,所以全局函数中的this 指的是window对象 2 事件处理函数中使用this,指的是当前事件的触发对象 2 事件对象 1 事件对象伴随事件触发产生,包含当前事件相关的所有信息 2 获取事件对象 事件对象伴随事件发生,自动产生,由浏览器以参数的形式传入到事件处理函数中,我们只需要接收参数就可以 et: function fn(evt){ console.log(evt) } fn(evt); 3 事件对象的属性 1 target / srcElement 表示当前事件的触发对象; et: console.log(evt) 2 不同的事件类型对应的事件对象中包含的信息也有所不同 1 鼠标事件对象常用属性 1 offsetX offsetY 获取鼠标在元素上的坐标位置 默认元素左上角为原点 2 clientX clientY 获取鼠标在网页上的坐标位置 3 screenX screenY 获取鼠标在屏幕上的坐标位置 3 键盘事件对象的常用属性 1 onkeydown 事件 1 which 属性 获取当前按键的键码 对于大小写字母不进行区分 2 onkeypress 事件 1 key属性 获取当前按键对应的字符 2 which 属性 获取按键对应的ASC码 ,区分大小写 3 事件处理机制 1 事件传递 当页面元素触发事件时,其他相关元素都会接收到这个事件,可以选择对事件作出处理 2 事件传递机制: 指页面中元素处理事件的顺序 1 分类: 1 冒泡 冒泡传递指事件由里向外传递机制 2 捕获 捕获指事件从外向里传递,IE不支持 W3C标准事件监听函数 addEventListener(param,fun,boolean) 参数: param:事件函数名,取消on前缀 et : click fun:事件触发要执行的操作,通常以匿名函数给出 boolean:默认为false,可以省略,表示冒泡传递,设置为true,表示捕获传递 2 阻止事件传递 evt.stopPropagation() jquery 使用 1 jquery是一个JS库,封装了原生的JS,得到一套完整的方法 核心 :write less, do more 版本: 1 xx.xx版本的jquery兼容IE6.7.8 2 XX.XX 版本的jquery 不再兼容ie6.7.8 优点: 1 简化DOM操作,像操作css一样操作DOM 2 直接通过选择器设置样式 3 简化JS事件操作 4 采用链式调用操作JS节点 -------------------- 5 Ajax技术更加完善 6 提供各种便捷的动画处理 7 基于jquery的插件使用更便捷 8 可能通过jquery自定义插件 1 引入jquery 文件 <script src=''></script> 2 如果想要使用jQuery语法,必须将文件引入操作放在代码前面 2 使用jQuety 1 jquery对象:实际上是对原生的js对象进行封装,封装之后可以使用jQuery提供的方法 注意: 1 jQuery对象可以使用jQuery提供的方法,原生js对象可以使用原生JS方法,方法不能混用 2 jQuery对象和原生JS对象可以共存,也可以互相转换 2.工厂函数 $() jQuery对象可以使用 jQuery或者 $表示 使用: $('param') 3 原生对象与jquery对象互相转换 1 DOM -> jquery var h1 = document.get.... var $h1 = $(h1); 2 jquery -> DOM var h1 = $h1[0]; var h1 = %h1.get(0); 3 jQuery选择器 1 根据提供的选择器到页面获取元素,返回都是jquery对象组成的数组 2 $('选择器'); 3 选择器分类: 1 基础选择器 1 id 选择器 $('#id'); 2 类选择器 $('.className'); 3 标签选择器 $('tagName'); 4 群组选择器 $('selector1,selector2,...') 2 层级选择器 1 后代选择器 $('selector1 selector2'); 2 子选择器 $('selector1>selector2'); 3 相邻兄弟选择器 $('selector1+selector2'); 只匹配一个 匹配紧跟在seletor1后 4 通用兄弟选择器 $('selector1~selector2'); 匹配selector1 后面所有满足selector2的兄弟元素 3 筛选选择器 也叫过滤选择器,需要结合其他选择器使用 1 :first 匹配一组元素中的第一个 et: p:first 2 :last 匹配一组元素中的最后一个 selector:last 3 :not 否定筛选,将selecctor匹配的元素过滤在外,匹配其他元素 :not(selector) 4 :odd 匹配偶数行对应的元素 5 :even 匹配奇数行对应的元素 6 :eq(index) 匹配下标等于index的元素 et: $('p:eq(3)').css('color','red'); 7 :lt(index) 匹配下标小于index的元素 8 :gt(index) 匹配下标大于index的元素 4 属性选择器 {引用代码 <h1 id="d1">一级标题</h1> <p class='c1'>什么鬼1</p> <h2 id='ad2' class='d1'>二级标题</h2> } 1 根据属性名筛选元素 [arrtibute] et: $('[id]').css('color','red'); 2 根据属性名称和属性值筛选元素 [arrtibute="value"] et: $('[id=d1]').css('border','1px solid') 3 匹配属性名以指定字符开头的元素 [arrtibute^=value] ^ 表示以...开头 et: $('[id^=d]').css('font-size','16px') 4 匹配属性值以指定字符结尾的元素 [arrtibute$=value] $表示以...结尾 et: $('[class$=1]').css('font-size','32px') 5 匹配属性值中包含指定字符的元素 [arrtibute*=value] et: $('[id*=d]').css('background','orange') 6 匹配属性名不等于指定属性值的元素 [arrtibute!=value] 5 子元素过滤选择器 1 :first-child 匹配属于父元素中的第一个子元素 2 :last-child 匹配父元素中最后一个子元素 3 :nth-child() 匹配第n个子元素 et : $('li:nth-child(even)').css('color','red') 将关键字或是表达式做参数传递给:nth-child() 关键字 或表达的值会被作为下标匹配元素 even 取值: 1 3 5 7 ... odd 取值:0 2 4 6 ... 4 jQuery 操作DOM 1 内容操作 1 html() 设置或读取jquery中的HTML内容,类似于原生JS innerHTML 2 text() 设置或读取jquery对象中的文本内容,类似原生JS innerText 3 val() 设置或读取表单对象的value值 2 属性操作 1 attr() 读取或设置jquery对象的属性 et: $('div').attr('class','c1') 2 removeattr() 移除指定属性 et: $('div').removeAttr('id') 3 样式操作 1 attr() 为元素添加id或class属性,对应选择器样式 2 addClass('类名') 为元素的class属性赋值,匹配选择器样式 注意: 可以重复调用 ,为class添加属性值 1 $('p').addClass('类名1 类名2') 2 $('p').addClass('类名1') $('p').addClass('类名2') 3 $('p').addClass('类名1').addClass('类名2') 3 removeClass('') 移除指定的class属性值 参数可以省略,省略之后表示清空类选择器 4 toggleClass() 切换样式,给出class属性值,如果元素存在指定的类名,则移除,不存在则添加 5 css() 设置或读取元素的css属性 1 css('width') 读取元素的宽度 2 css('width','300px'); 设置元素的样式 3 css(JSon对象) 为元素设置一组css样式 css({'color':'red','width':'300px'}) 4 节点查询 1 children() / children('selector') 获取jquery对象的所有子元素或者获取指定选择器匹配的所有子元素 注意:只包含直接子元素,不考虑后代子元素 2 find('selector') 获取满足selector的所有后代元素 3 prev() / prev('selector') 获取满足前一个兄弟元素或者获取前一个兄弟元素,必须满足slector 4 next() / next('selector') 获取后一个兄弟元素 或者 获取后一个兄弟元素,必须满足selector 5 siblings() / siblings('selector') 获取前后所有的兄弟元素 或者 满足selector的所有兄弟元素 6 parent() 获取jquery对象的父元素 5 节点操作 1 创建节点 var $h1 = $('<h1>一级标题</h1>'); var $h1_1 = $('<h1></h1>'); h1.attr() h1.html() h1.css(); 2 添加节点 1 以子元素的形式插入到页面中 1 $parent.append($h1); 将新创建的对象作为最后一个子元素插入 2 $parent.prepend($h1_1); 将新创建的对象作为第一个子元素添加 2 以兄弟元素的形式插入到页面中 1 $obj.after($h1); 将新创建的对象作为$obj的下一个兄弟元素插入 2 $obj.before($h2); 将新创建的对象作为$obj的前一个兄弟元素插入 3 删除节点 $obj.remove() 移除 $obj 6 事件操作 1 页面加载完毕之后再执行 原生JS: window.onload = function(){}; jquery的三种写法 1 $(document).ready(function(){}); 2 $().read(function(){}); 3 $(function(){}) 原生 onload事件与jquery的ready()方法区别: 1 原生的onload事件多次使用时,前面的会被覆盖不执行,需要做特殊判断和处理,而ready方法没有此问题, 可以重复调用多次,按顺序依次执行 2 原生的onload事件会等待文档中DOM树及所有资源都加载完毕之后才执行,而ready方法会等文档DOM树加载完毕后就执行 2 jquery事件绑定 1 使用bind() $obj.bind('事件函数名',function(){}); 注意:省略on 前缀 et: $('div').bind('click',function(){}) 2 使用事件函数 $obj.事件名称(function(){}); 注意:省略on前缀 et: $('div').click(function(){}); 3 事件对象及属性 1 获取事件对象与原生方法一致 都是以参数形式自动传入 $('div').click(function(evt){console.log(evt)}) 2 事件对象的属性保持一致 target offsetX ... 4 this 对象 当前函数或方法的调用对象
使用each()迭代数组
1 $.each();
语法
$.each(arr,function(index,obj){} )
// index :遍历出来的元素的下标
// obj: 表示遍历出来的元素
2 $obj.each();
语法:
$obj.each(function(index.obj){
//index:遍历出来的元素的下标
//obj:表示遍历出来的元素
})
#
$.ajax({ url:"/server20/", type:"get", dataType:"json", success:function (data) { $.each(data,function (i,obj) { console.log(obj.fields.name) }) } })
不是所有的成功都是坐享其成,联系作者v(13147256756)