详解jQuery选择器与dom对象区别与应用技术.doc_第1页
详解jQuery选择器与dom对象区别与应用技术.doc_第2页
详解jQuery选择器与dom对象区别与应用技术.doc_第3页
详解jQuery选择器与dom对象区别与应用技术.doc_第4页
详解jQuery选择器与dom对象区别与应用技术.doc_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

详解jQuery选择器与dom对象区别与应用技术编写任何javascript程序我们要首先获得对象, jQuery选择器能彻底改变我们平时获取对象的方式, 可以获取几乎任何语意的对象,比如“拥有title属性并且值中包含test的元素”, 完成这些工作只需要编写一个jQuery选择器字符串。无论是在写程序还是看API文档,我们要时刻注意区分Dom对象和jQuery包装集。Dom对象概述在传统的javascript开发中,我们都是首先获取Dom对象,比如:var div = document.getElementById(testDiv);var divs = document.getElementsByTagName(div);我们经常使用 document.getElementById 方法根据id获取单个Dom对象,或者使用document.getElementsByTagName 方法根据HTML标签名称获取Dom对象集合。另外在事件函数中,可以通过在方法函数中使用this引用事件触发对象(但是在多播事件函数中IE6存在问题), 或者使用event对象的target(FF)或srcElement(IE6)获取到引发事件的Dom对象。注意我们这里获取到的都是Dom对象,Dom对象也有不同的类型比如input、div、span等。Dom对象只有有限的属性和方法:jQuery包装集jQuery包装集可以说是Dom对象的扩充。在jQuery的世界中将所有的对象,无论是一个还是一组,都封装成一个jQuery包装集,比如获取包含一个元素的jQuery包装集:var jQueryObject = $(#testDiv);jQuery包装集都是作为一个对象一起调用的,jQuery包装集拥有丰富的属性和方法,这些都是jQuery特有的:Dom对象与jQuery对象的转换1)Dom转jQuery包装集如果要使用jQuery提供的函数,就要首先构造jQuery包装集。我们可以使用本文即将介绍的jQuery选择器直接构造jQuery包装集,比如:$(#testDiv);上面语句构造的包装集只含有一个id是testDiv的元素。或者我们已经获取了一个Dom元素,比如:var div = document.getElementById(testDiv);上面的代码中div是一个Dom元素,我们可以将Dom元素转换成jQuery包装集:var domToJQueryObject = $(div);2)jQuery包装集转Dom对象jQuery包装集是一个集合,所以我们可以通过索引器访问其中的某一个元素:var domObject = $(#testDiv)0;注意,通过索引器返回的不再是jQuery包装集, 而是一个Dom对象!jQuery包装集的某些遍历方法,比如each()中,可以传递遍历函数,在遍历函数中的this也是Dom元素,比如:$(#testDiv).each(function() alert(this) )如果我们要使用jQuery的方法操作Dom对象,怎么办? 用上面介绍过的转换方法即可:$(#testDiv).each(function() $(this).html(修改内容) )知道了DOM对象与jQuery之间 的区别,我们就可以这样在遍历中运用自如:var mydiv=$(div);for(var i=0;imydiv.length;i+) alert(mydivi.innerHTML); /alert($(mydivi).text();全面分析jQuery选择器1)基础形式选择器*:表示匹配所有元素。HTML 代码:DIVSPANPjQuery 代码:$(*)结果: DIV, SPAN, P .class:表示根据给定的类匹配元素,一个元素可以有多个类,只要有一个符合就能被匹配到。HTML 代码:div class=notMediv class=myClassspan class=myClassjQuery 代码:$(.myClass);结果: div class=myClass, span class=myClass element:表示根据给定的元素名匹配所有元素,element指向 DOM 节点的标签名。HTML 代码:DIV1DIV2SPANjQuery代码:$(div);结果: DIV1, DIV2 id:表示根据给定的ID匹配一个元素。HTML 代码:id=notMeid=myDiv jQuery 代码:$(#myDiv); 结果: id=myDiv selector1,selector2,selectorN:表示将每一个选择器匹配到的元素合并后一起返回。HTML 代码:divp class=myClassspanp class=notMyClass jQuery 代码:$(div,span,p.myClass) 结果: div, p class=myClass, span 2)层级形式选择器ancestor descendant:在给定的祖先元素下匹配所有的后代元素。HTML 代码: Name: Newsletter: jQuery 代码:$(form input) 结果: , parent child:在给定的父元素下匹配所有的子元素HTML 代码: Name: Newsletter: jQuery 代码:$(form input) 结果: prev + next:匹配所有紧接在 prev 元素后的 next 元素。HTML 代码: Name: Newsletter: jQuery 代码:$(label + input) 结果: , prev siblings:匹配 prev 元素之后的所有 siblings 元素。HTML 代码: Name: Newsletter: jQuery 代码:$(form input) 结果: 3)常用形式选择器:animated:匹配所有正在执行动画效果的元素。HTML 代码:Run jQuery 代码:$(#run).click(function() $(div:not(:animated).animate( left: +=20 , 1000););:eq(index):匹配一个给定索引值的元素。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:eq(1) 结果: Value 1 :even:匹配所有索引值为偶数的元素,从 0 开始计数。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:even) 结果: Header 1, Value 2 :first:匹配找到的第一个元素。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:first) 结果: Header 1 :gt(index):匹配所有大于给定索引值的元素。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:gt(0) 结果: Value 1, Value 2 :header:匹配如 h1, h2, h3之类的标题元素。HTML 代码:Header 1Contents 1Header 2Contents 2 jQuery 代码:$(:header).css(background, #EEE); 结果: Header 1, Header 2 :last:匹配找到的最后一个元素。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:last) 结果: Value 2 :lt(index):匹配所有小于给定索引值的元素。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:lt(2) 结果: Header 1, Value 1 :not(selector):去除所有与给定选择器匹配的元素。HTML 代码: jQuery 代码:$(input:not(:checked) 结果: :odd:匹配所有索引值为奇数的元素,从 0 开始计数。HTML 代码: Header 1 Value 1 Value 2 jQuery 代码:$(tr:odd) 结果: Value 1 4)内容形式选择器:contains(text):匹配包含给定文本的元素。HTML 代码:John ResigGeorge MartinMalcom John SinclairJ. Ohn jQuery 代码:$(div:contains(John) 结果: John Resig, Malcom John Sinclair :empty:匹配所有不包含子元素或者文本的空元素。HTML 代码: Value 1 Value 2 jQuery 代码:$(td:empty) 结果: , :has(selector):匹配含有选择器所匹配的元素的元素。HTML 代码:HelloHello again! jQuery 代码:$(div:has(p).addClass(test); 结果: Hello :parent:匹配含有子元素或者文本的元素。HTML 代码: Value 1 Value 2 jQuery 代码:$(td:parent) 结果: Value 1, Value 1 5)可见性类型选择器:hidden:匹配所有的不可见元素,input 元素的 type 属性为 hidden 的话也会被匹配到。HTML 代码: Value 1 Value 2 jQuery 代码:$(tr:hidden) 结果: Value 1 :visible:匹配所有的可见元素。HTML 代码: Value 1 Value 2 jQuery 代码:$(tr:visible) 结果: Value 2 6)属性类型选择器attribute*=value:匹配给定的属性是以包含某些值的元素。HTML 代码: jQuery 代码:$(inputname*=man) 结果: , , attribute!=value:匹配给定的属性是不包含某个特定值的元素。HTML 代码: jQuery 代码:$(inputname!=newsletter).attr(checked, true); 结果: attribute$=value:匹配给定的属性是以某些值结尾的元素。HTML 代码: jQuery 代码:$(inputname$=letter) 结果: , attribute=value:匹配给定的属性是某个特定值的元素。HTML 代码: jQuery 代码:$(inputname=newsletter).attr(checked, true); 结果: , attribute:匹配包含给定属性的元素。HTML 代码: Hello! jQuery 代码:$(divid) 结果: attribute=value:匹配给定的属性是以某些值开始的元素。HTML 代码: jQuery 代码:$(inputname=news) 结果: , selector1selector2selectorN:复合属性选择器,需要同时满足多个条件时使用。HTML 代码: jQuery 代码:$(inputidname$=man) 结果: 7)子元素类型选择器:first-child匹配第一个子元素。HTML 代码: John Karl Brandon Glen Tane Ralph jQuery 代码:$(ul li:first-child) 结果: John, Glen :last-child:匹配最后一个子元素。HTML 代码: John Karl Brandon Glen Tane Ralph jQuery 代码:$(ul li:last-child) 结果: Brandon, Ralph :nth-child(index/even/odd/equation):匹配其父元素下的第N个子或奇偶元素。HTML 代码: John Karl Brandon Glen Tane Ralph jQuery 代码:$(ul li:nth-child(2) 结果: Karl, Tane :only-child:如果某个元素是父元素中唯一的子元素,那将会被匹配。HTML 代码: John Karl Brandon Glen jQuery 代码:$(ul li:only-child) 结果: Glen 8)表单类型选择器:button:匹配所有按钮。HTML 代码: jQuery 代码:$(:button) 结果: , :checkbox:匹配所有复选框。jQuery 代码:$(:checkbox) 结果: :file匹配所有文件域:jQuery 代码:$(:file) 结果: :hidden:匹配所有不可见元素,或者type为hidden的元素。HTML 代码: jQuery 代码:$(input:hidden) 结果: :image:匹配所有图像域。jQuery 代码:$(:image) 结果: :input:匹配所有 input, textarea, select 和 button 元素。jQuery 代码:$(:input

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论