`
tigers20010
  • 浏览: 49226 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

2009-12-25传智播客——JavaScript:JQuery (转载)

阅读更多

使用过AJAX技术的人都知道大名鼎鼎的JQuery。虽然我来学习之前有看过AJAX的视频,但那时对WEB应用这个东西还比较模糊,不清楚HTMLJSPServlet是怎么工作的,甚至不知道JQuery包装的是什么东西。今日的学习再结合昨天的JavaScriptDOM的内容,让我对此十分清晰。JQuery原则:“write less, do more.”,这句话已充分说明它对简化使用JavaScriptDOM编程的功力!

 

         每位老师都有自己的教学方式,可能根据教授的内容的不同教学方式也有轻微的变化。老佟是一位非常有经验的软件教师,之前他在大连的软件公司做培训。经过多年的总结,他已经有自己一套成熟的教学方式。这个方式让我十分喜欢!至于是什么方式,你自己来体验吧!哈哈~~

 

         从学习JavaWEBStruts1到现在的JavaScript,我已经找到了WEB应用开发的核心——MVC。是的,就是MVC。其实MVC应该是根据WEB的核心被创造出来的模式,难道不是吗!这一整套工具,就是分别对视图层、控制层和数据模型层的操作。似乎现在才找到了一些感觉,因为以前学习servlet时,知道它可以处理用户的请求,老师讲什么就学习什么。但现在有思想了,老师你无论讲什么,我都知道它应该用在哪一层,有什么用途,这样提高了我的学习效率。这是一个非常好的成长!对以后的成长大有帮助。

 

         接下来这些灵散的知识就不多了,然后就开始做项目了。两个字,快、爽!Ok,开始整理学习内容。

 

一、JQueryJavaScript

1.JavaScript

         使用过JavaScriptDOM的人都应该知道(比如昨天的练习),使用JSDOM进行页面的操作是十分麻烦的。比如获取、修改及添加子节点等这些操作。如果操作一个复杂的页面呢?OkJavaScript库因此诞生了。

 

         目前比较常见的JavaScript库有:

clip_image004

 

2.JQuery简介

JQuery是继Prototype之后又一个优秀的JavaScript库。

JQuery理念:write less , do more.

JQuery优势:轻量级、强大的选择器、出色的 DOM 操作的封装、可靠的事件处理机制、完善的Ajax、出色的浏览器兼容性、链式操作方式……。

 

二、JQuery对象与DOM对象

1.JQuery对象

         JQuery对象就是使用“$(“DOMObj”)”,将DOM对象包装起来。一般在JQuery对象前面加上“$”这样与DMO对象区分,它已经是一种公认的命名约定。JQuery对象不能调用DOM对象的属性和方法,同样DOM对象也不能调用JQuery对象的属性和方法。

 

2.JQuery对象转成DOM对象

         如果想使用JQuery对象调用DOM对象的方法,怎么办?应该将JQuery对象转换成DOM对象,JQuery对象是一个数组对象,这个很特别。所以只需调用JQueryObj[x]JQueryObj.get(X);即可转换为DOM对象。

 

3.DOM对象转换成JQuery对象

         使用“$(“DOMObj”)”将DOM对象包装起来就可以了。

 

三、JQuery选择器

选择器是JQuery的根基,在JQuery 中,对事件处理,遍历DOMAjax操作都依赖于选择器。这也是今天我们学习的重点内容。

 

1.基本选择器

         基本选择器是JQuery中最常用的选择器,也是最简单的选择器,它通过元素idclass 和标签名来查找DOM元素。这个非常重要,下面的内容都是以此为基础,逐级提高的。

         1).$(“#id”)”,获取id指定的元素,id是全局唯一的,所以它只有一个成员。

         2).$(“.class”)”,获取class指定的元素,不同的元素可以具有相同的class属性,所以它可能具有多个成员。

         3).$(“element”)”,获取element(元素名,比如divtable等)指定的元素,它可能具有多个成员。

         4).$(“*”)”,获取所有元素,相当于document

         5).$(“selector1,selector2,…,selectorN”)”,将每个选择器匹配到的元素合并后一起返回。返回selector1匹配的集合+selector2匹配的集合+…+selectorN匹配的集合。

 

2.层次选择器

         什么是层次?层次就是父子关系、兄弟关系的节点。所以,层次选择器就是用来获取指定元素的父子节点、兄弟节点。

         1).$(“ancestor descendant”)”,获取ancestor元素下边的所有元素。

         2).$(“parent > child”)”,获取parent元素下边的所有子元素(只包含第一层子元素)。

         3).$(“pre + next”)”,获取紧随pre元素的后一个兄弟元素。

         4).$(“pre ~ siblings”)”,获取pre元素后边的所有兄弟元素。

 

3.过滤选择器

         过滤?肯定是要添加过滤条件的。通过“:”添加过滤条件,比如“$(“div:first”)”返回div元素集合的第一个div元素,first是过滤条件。

         按照不同的过滤规则,过滤选择器可以分为基本过滤,内容过滤,可见性过滤,属性过滤,子元素过滤和表单对象属性过滤选择器。

 

1). 基本过滤选择器

a)          :first”,选取第一个元素,别忘记它也是被放在一个集合里哦!因为JQuery它是DOM对象的一个集合。如,“$("tr:first")”返回所有tr元素的第一个tr元素,它仍然被保存在集合中。

b)         :last”,选取最后一个元素。如,“$("tr:last")”返回所有tr元素的最后一个tr元素,它仍然被保存在集合中。

c)          :not(selector)”,去除所有与给定选择器匹配的元素。如,“$("input:not(:checked)")”返回所有input元素,但去除被选中的元素(单选框、多选框)。

d)         :even”,选取所有元素中偶数的元素。因为JQuery对象是一个集合,这里的偶数指的就是集合的索引,索引从0开始。

e)          :odd”,选取所有元素中奇数的元素,索引从0开始。

f)          :eq(index)”,选取指定索引的元素,索引从0开始。

g)         :gt(index)”,选取索引大于指定index的元素,索引从0开始。

h)         :lt(index)”,选取索引小于指定index的元素,索引从0开始。

i)           :header”,选取所有的标题元素,如hqh2等。

j)           :animated”,选取当前正在执行的所有动画元素。

 

2). 内容过滤选择器

         它是对元素和文本内容的操作。

a)          :contains(text)”,选取包含text文本内容的元素。

b)         :empty”,选取不包含子元素或者文本节点的空元素。

c)          :has(selector)”,选取含有选择器所匹配的元素的元素。

d)         :parent”,选取含有子元素或文本节点的元素。(它是一个父节点)

 

3). 可见性过滤选择器

         根据元素的可见与不可见状态来选取元素。

         :hidden”,选取所有不可见元素。

         :visible”,选择所有可见元素。

可见选择器:hidden 不仅包含样式属性 display none 的元素,也包含文本隐藏域 (<input type=hidden>) visible:hidden 之类的元素。

 

4).属性过滤选择器

         通过元素的属性来选取相应的元素。

a)          [attribute]”,选取拥有此属性的元素。

b)         [attribute=value]”,选取指定属性值为value的所有元素。

c)          [attribute !=value]”,选取属性值不为value的所有元素。

d)         [attribute ^= value]”,选取属性值以value开始的所有元素。

e)          [attribute $= value]”,选取属性值以value结束的所有元素。

f)          [attribute *= value]”,选取属性值包含value的所有元素。

g)         [selector1] [selector2]…[selectorN]”,复合性选择器,首先经[selector1]选择返回集合A,集合A再经过[selector2]选择返回集合B,集合B再经过[selectorN]选择返回结果集合。

 

5). 子元素过滤选择器

         一看名字便是,它是对某一元素的子元素进行选取的。

a)          :nth-child(index/even/odd)”,选取索引为index的元素、索引为偶数的元素、索引为奇数的元素。

l          nth-child(even/odd):能选取每个父元素下的索引值为偶()数的元素。

l          nth-child(2):能选取每个父元素下的索引值为 2 的元素。

l          nth-child(3n):能选取每个父元素下的索引值是 3 的倍数的元素。

l          nth-child(3n + 1):能选取每个父元素下的索引值是 3n + 1的元素。

b)         :first-child”,选取第一个子元素。

c)          :last-child”,选取最后一个子元素。

d)         :only-child”,选取唯一子元素,它的父元素只有它这一个子元素。

 

6). 表单过滤选择器

         选取表单元素的过滤选择器。

a)          :input”,选取所有<input><textarea><select ><button>元素。

b)         :text”,选取所有的文本框元素。

c)          :password”,选取所有的密码框元素。

d)         :radio”,选取所有的单选框元素。

e)          :checkbox”,选取所有的多选框元素。

f)          :submit”,选取所有的提交按钮元素。

g)         :image”,选取所有的图像按钮元素。

h)         :reset”,选取所有重置按钮元素。

i)           :button”,选取所有按钮元素。

j)           :file”,选取所有文件上传域元素。

k)         :hidden”,选取所有不可见元素。

 

7).表单对象属性过滤选择器

         选取表单元素属性的过滤选择器。

         :enabled”,选取所有可用元素。

         :disabled”,选取所有不可用元素。

         :checked”,选取所有被选中的元素,如单选框、复选框。

         :selected”,选取所有被选中项元素,如下拉列表框、列表框。

 

四、JQuery中的DOM

         一种与浏览器,平台,语言无关的接口。使用该接口可以轻松地访问页面中所有的标准组件。

         DOM CoreDOM Core 并不专属于 JavaScript,任何一种支持 DOM 的程序设计语言都可以使用它。它的用途并非仅限于处理网页,也可以用来处理任何一种是用标记语言编写出来的文档,例如:XML

HTML DOM:使用 JavaScript DOM HTML 文件编写脚本时,有许多专属于HTML-DOM的属性。

CSS-DOM:针对于CSS操作,在JavaScript中,CSS-DOM 主要用于获取和设置 style 对象的各种属性。

        

1.查找节点

         请见上面的“基本选择器”。

 

2.创建节点

         使用JQuery的工厂函数,创建一个新节点:var $newNode = $(“<p>你好</p>”);,然后将新节点插入到指定元素节点处。

 

3.插入节点

         将新创建的节点,或获取的节点插入指定的位置。

         $node.append($newNode)”,向每个匹配的元素内部的结尾处追加结尾处。如,“$("p").append("<b>Hello</b>");”将"<b>Hello</b>"添加到"p"内部的结尾处。

         $newNode.appendTo($node)”,将新元素追加到每个匹配元素内部的结尾处。

         $node.prepend($newNode)”,向每个匹配的元素内部的结尾处追加开始处。如,“$("p").prepend("<b>Hello</b>");”将"<b>Hello</b>"添加到"p"内部的起始处。

         $newNode.prependTo($node)”, 将新元素追加到每个匹配元素内部的开始处。

         $node.after($newNode)”,向每个匹配的元素的之后插入内容,是并列兄弟。如,“$("p").after("<b>Hello</b>");”将"<b>Hello</b>"插入到"p"的后边。它们是兄弟关系。

         $newNode.insertAfter($node)”,将新元素插入到每个匹配元素之后。

         $newNode.before($node)”,向每个匹配的元素的之前插入内容。如,“$("p").before("<b>Hello</b>");”将"<b>Hello</b>"插入到"p"的前面,它们是兄弟关系。

         $node.insertBefore($newNode)”,将新元素插入到每个匹配元素之前。

         注意:如果插入的节点是不是新创建的,插入将变成移动操作。所以,在插入这样的节点之前应该使用clone的节点。

 

4.删除节点

         DOM中删除所有匹配的元素。如,“$("p").remove(".hello");”删除所为class属性值为hellop元素,还有它下面的所有元素。

 

         DOM中清除所有匹配的元素。如,“$("p").empty();”清除所有p元素,还有它下面的所有元素。

 

5.复制节点

         克隆匹配的DOM元素。如,“$("p").clone();”返回克隆后的副本,但不具有任何行为。如果要将DOM的事件一起克隆,应该使用“$("p").clone(true);”。

 

6.替换节点

         将所有匹配的元素都替换为指定的 HTML DOM 元素。如,$("p").replaceWith("<b>Paragraph. </b>");,将所有p元素,替换为"<b>Paragraph. </b>"

        

         replaceWith相返:$("<b>Paragraph. </b>").replaceAll("p");

 

7.包裹节点

         wrap():将指定节点用其他标记包裹起来。该方法对于需要在文档中插入额外的结构化标记非常有用, 而且不会破坏原始文档的语义。如,“$("p").wrap("<div class='wrap'></div>");”。每个p元素被包裹到<div>中。

wrapAll():将所有匹配的元素用一个元素来包裹。而wrap()方法是将所有的元素进行单独包裹。如,“$("p").wrapAll("<div></div>");”,将所有p元素包裹到<div>中。

wrapInner():将每一个匹配的元素的子内容(包括文本节点)用其他结构化标记包裹起来。如,“$("p").wrapInner("<b></b>");”, <b>被每一个p元素包裹。

 

8.属性设置

         attr():获取属性和设置属性。

当为该方法传递一个参数时,即为某元素的获取指定属性。如,“$("img").attr("src");”,获取img元素的src属性值。

当为该方法传递两个参数时,即为某元素设置指定属性的值。如,“$("img").attr("src","test.jpg");”,设置img元素的src属性值为test.jsp

jQuery 中有很多方法都是一个函数实现获取和设置。如:attr()html()text()val()height()width()css()等。

text-inden

分享到:
评论

相关推荐

    传智播客 jQuery ajax 课件

    《jQuery AJAX 技术详解——基于传智播客课件》 在当今的Web开发中,jQuery AJAX(异步JavaScript和XML)技术扮演着至关重要的角色。它允许开发者在不刷新整个页面的情况下与服务器进行数据交换,提高了用户体验,...

    传智播客就业班.net培训教程60G

    ### 传智播客就业班 .NET 培训教程概览 #### 一、.NET 基础加强(10天) 本阶段重点在于加深学员对 .NET 框架的理解,主要包括: - **集合操作**:通过学习 List、Dictionary 和 Array 等常用数据结构的操作方法...

    韩顺平 jquery 源码 传智播客

    《深入解析jQuery源码——基于韩顺平讲解》 jQuery,作为一款广泛应用于Web开发的JavaScript库,以其简洁、易用的API深受开发者喜爱。它极大地简化了DOM操作、事件处理、动画效果以及Ajax交互等任务。韩顺平老师的...

    清华大学DeepSeek从入门到精通(视频课程+PDF)

    【清华大学】DeepSeek从入门到精通(视频课程+PDF)

    更新-“双高计划”专业群完整申报书与建设方案/中期评估报告

    自2019年以来,教育部启动实施“双高计划”,遴选确定首批“双高计划”建设单位197所,其中高水平学校建设单位56所,高水平专业群建设单位141所,河南省有黄河水利职业技术学院、河南工业职业技术学院等6所职业学校入选。2022年,教育部开展国家“双高计划”中期绩效评价,从评价结果看,国家“双高计划”任务进展顺利,建设成效突出,形成了一批先进经验做法和典型案例,在引领职业教育改革、服务国家战略和支撑区域发展方面形成示范势头。 今天,我们给大家分享一些“双高计划”专业群完整申报书与建设方案和中期评估报告。 ## 一、专业群完整申报书与建设方案 ## 二、“双高计划”中期报告 (100多份)

    电子商务平台秒杀系统减库存设计的核心逻辑与优化策略解析

    内容概要:本文详细探讨了电商平台上秒杀系统中减库存的设计逻辑和技术优化方法。首先,文中阐述了‘下单减库存’、‘付款减库存’和‘预扣库存’三种常见方式及其各自面临的问题和局限性,尤其是面对高并发流量冲击下的系统稳定性与数据准确性保障挑战。接着讨论了适用于大规模促销活动中快速而精准地扣除存货的方法,提出了诸如应用本地缓存(Local Cache)、引入高性能持久化键值存储(如Redis),甚至修改数据库引擎源代码(InnoDB 层面排队机制)等一系列先进解决方案来确保交易流程顺畅。此外,还提到了在极端情况发生(例如超卖)时如何借助补救措施挽回损失的具体实例。 适合人群:电商平台开发运维技术人员;有兴趣深入了解电商业务架构和技术优化的开发者和IT管理人员。 使用场景及目标:①帮助设计师理解不同减库存策略的应用时机及其利弊;②指导程序员针对特定业务需求选择最适合的技术路径进行项目构建;③提供给运维专家关于改善在线交易平台响应速度和服务质量的专业见解。 其他说明:本篇文章对于构建高效的电子商贸系统有着极高的参考价值,尤其是那些准备应对瞬息万变市场环境下的企业来说尤为重要。它不仅限于理论探讨层面,

    动态表单,VUE动态表单 基于vue+elementplus实现动态表单组件,通过拖拽组件到面板即可实现一个表单 支持各个组件的动态隐藏显示,动态表格弹窗式维护

    动态表单,VUE动态表单。基于vue+elementplus实现动态表单组件,通过拖拽组件到面板即可实现一个表单。支持各个组件的动态隐藏显示,动态表格弹窗式维护。

    【毕业设计】java-springboot-vue家居日用小百货交易网站实现源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计】java-springboot-vue家居日用小百货交易网站实现源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计】java-springboot+vue火锅店管理系统源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计】java-springboot+vue火锅店管理系统源码(完整前后端+mysql+说明文档+LunW).zip

    基于springboot+vue的在线教育系统设计与实现(LW+PPT).zip

    随着信息技术在管理上越来越深入而广泛的应用,管理信息系统的实施在技术上已逐步成熟。本文介绍了微服务在线教育系统的开发全过程。通过分析微服务在线教育系统管理的不足,创建了一个计算机管理微服务在线教育系统的方案。文章介绍了微服务在线教育系统的系统分析部分,包括可行性分析等,系统设计部分主要介绍了系统功能设计和数据库设计。 本微服务在线教育系统有管理员,用户两个角色。管理员功能有个人中心,用户管理,课程信息管理,课程类型管理,学科管理,购买的课程管理,职业规划管理,视频点播管理,我的笔记管理,我的课程管理,消息通知管理,学习交流,试卷管理,留言板管理,试题管理,系统管理,考试管理。用户功能有个人中心,用户管理,购买的课程管理,我的笔记管理,我的课程管理,消息通知管理。因而具有一定的实用性。 本站是一个B/S模式系统,采用SSM框架,MYSQL数据库设计开发,充分保证系统的稳定性。系统具有界面清晰、操作简单,功能齐全的特点,使得微服务在线教育系统管理工作系统化、规范化。本系统的使用使管理人员从繁重的工作中解脱出来,实现无纸化办公,能够有效的提高微服务在线教育系统管理效率。 关键词:微服务在线教育系统;SSM框架;MYSQL数据库;Spring Boot

    基于Javascript实现,强化学习QLearning的一个贪吃蛇实例

    javascript 基于Javascript实现,强化学习QLearning的一个贪吃蛇实例.

    编程挑战_Chef卡牌游戏_学习资源_技能提升_1741399339.zip

    python教程学习

    基于springboot+vueIT技术交流和分享平台的设计与实现(LW).zip

    我国科学技术的不断发展,计算机的应用日渐成熟,其强大的功能给人们留下深刻的印象,它已经应用到了人类社会的各个层次的领域,发挥着重要的不可替换的作用。信息管理作为计算机应用的一部分,使用计算机进行管理,具有非常明显的优点,利用网络的优势特开发了本基于Spring Boot的IT技术交流和分享平台。 本IT技术交流和分享平台是基于Spring Boot框架,采用Java技术,MYSQL数据库进行开发的。系统具有灵活的一体化设计方式,圆满完成了整个系统的界面设计。本系统实现了用户功能模块和管理员功能模块两大部分,通过该系统用户可以快速进行IT技术交流和分享,管理员可登录系统后台对系统进行全面管理,确保系统正常稳定的运行。系统功能齐全,符合用户IT技术交流和分享的需求。 本文主要首先介绍了课题背景、设计原则和研究内容,系统采用的相关技术及开发平台,接着对本基于Spring Boot的IT技术交流和分享平台进行系统需求分析和设计,包括系统的功能模块,数据库的设计,系统结构以及系统界面设计等,最后对进行系统测试,完成本篇论文。 关键词:IT技术交流, Spring Boot框架, Java技术,MYSQL数据库

    疲劳检测yawn图片数据集

    疲劳检测yawn图片数据集

    JDK7通过java-jwt验证

    JDK7通过java-jwt验证

    【毕业设计】java-springboot+vue会议管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip

    【毕业设计】java-springboot+vue会议管理系统实现源码(完整前后端+mysql+说明文档+LunW).zip

    sksalahuddin2828_Python_1741398999.zip

    python学习资源

    51CTO 1、技术解析篇-DeepSeek入门宝典 2、开发实战篇-DeepSeek入门宝典 3、行业应用篇-DeepSeek入门宝典 4、个人使用篇-DeepSeek入门宝典

    51CTO 1、技术解析篇-DeepSeek入门宝典 2、开发实战篇-DeepSeek入门宝典 3、行业应用篇-DeepSeek入门宝典 4、个人使用篇-DeepSeek入门宝典

    机器学习与模式识别领域的PRML习题解析手册

    内容概要:本文档是由高正奇编辑的针对模式识别和机器学习(PRML)教科书的一份详细的解答手册。文档覆盖了从基本概念如误差函数求导、贝叶斯定理应用到多元高斯分布计算、Gamma函数积分及其性质等一系列复杂问题的解决方案,以及涉及线性模型分类的基础练习题、条件概率和联合概率计算等入门级习题。每一题都经过细致推导,帮助学生加深对机器学习相关概念的理解并掌握具体的数学方法。 适合人群:主要适用于正在攻读机器学习、模式识别相关课程的学生,以及从事数据科学工作的专业人士作为深入理解和实践指南。 使用场景及目标:本手册旨在辅助教学过程中遇到的具体难题解析,在研究和实践中作为参考资料进行理论验证和技术难点突破,尤其有助于准备考试或者项目实施时需要巩固知识的应用场合。 其他说明:书中题目涵盖广泛,既有直观的概率论应用,也有复杂的积分变换技巧和最优化思路展示,对于希望提高自身计算能力和解决实际问题能力的学习者非常有价值。但要注意的是,部分内容较为深奥,可能不适合初学者自学使用,最好配合课堂讲解或其他教材一起学习效果更佳。

    编程语言_Python_入门之旅_教程_1741403040.zip

    python学习资源

Global site tag (gtag.js) - Google Analytics