今日的学习再结合昨天的JavaScriptDOM的内容,让我对此十分清晰。JQuery原则:“write less, do more.”,这句话已充分说明它对简化使用JavaScriptDOM编程的功力! 每位老师都有自己的教学方式,可能根据教授的内容的不同教学方式也有轻微的变化。老佟是一位非常有经验的软件教师,之前他在大连的软件公司做培训。经过多年的总结,他已经有自己一套成熟的教学方式。这个方式让我十分喜欢!至于是什么方式,你自己来体验吧!哈哈~~ 从学习JavaWEB、Struts1到现在的JavaScript,我已经找到了WEB应用开发的核心――MVC。是的,就是MVC。其实MVC应该是根据WEB的核心被创造出来的模式,难道不是吗!这一整套工具,就是分别对视图层、控制层和数据模型层的操作。似乎现在才找到了一些感觉,因为以前学习servlet时,知道它可以处理用户的请求,老师讲什么就学习什么。但现在有思想了,老师你无论讲什么,我都知道它应该用在哪一层,有什么用途,这样提高了我的学习效率。这是一个非常好的成长!对以后的成长大有帮助。 接下来这些灵散的知识就不多了,然后就开始做项目了。两个字,快、爽!Ok,开始整理学习内容。 一、JQuery与JavaScript 1.JavaScript库 使用过JavaScriptDOM的人都应该知道(比如昨天的练习),使用JSDOM进行页面的操作是十分麻烦的。比如获取、修改及添加子节点等这些操作。如果操作一个复杂的页面呢?Ok,JavaScript库因此诞生了。 目前比较常见的JavaScript库有: 2.JQuery简介 JQuery是继Prototype之后又一个优秀的JavaScript库。 JQuery理念:write less , do more. JQuery优势:轻量级、强大的选择器、出色的 DOM 操作的封装、可靠的事件处理机制、完善的Ajax、出色的浏览器兼容性、链式操作方式……。
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”,选取所有的标题元素,如hq、h2等。 j) “:animated”,选取当前正在执行的所有动画元素。
2). 内容过滤选择器 它是对元素和文本内容的操作。 a) “:contains(text)”,选取包含text文本内容的元素。 b) “:empty”,选取不包含子元素或者文本节点的空元素。 c) “:has(selector)”,选取含有选择器所匹配的元素的元素。 d) “:parent”,选取含有子元素或文本节点的元素。(它是一个父节点)
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”,选取所有不可见元素。
四、JQuery中的DOM操作 一种与浏览器,平台,语言无关的接口。使用该接口可以轻松地访问页面中所有的标准组件。 DOM Core:DOM Core 并不专属于 JavaScript,任何一种支持 DOM 的程序设计语言都可以使用它。它的用途并非仅限于处理网页,也可以用来处理任何一种是用标记语言编写出来的文档,例如:XML。 HTML DOM:使用 JavaScript 和 DOM 为 HTML 文件编写脚本时,有许多专属于HTML-DOM的属性。 CSS-DOM:针对于CSS操作,在JavaScript中,CSS-DOM 主要用于获取和设置 style 对象的各种属性。
10.设置或获取HTML、文本和值 读取和设置某个元素中的 HTML 内容: html(),该方法可以用于 XHTML,但不能用于 XML 文档。 读取和设置某个元素中的文本内容:text(),该方法既可以用于 XHTML 也可以用于 XML 文档。 读取和设置某个元素中的值:val(),该方法类似 JavaScript 中的 value 属性。对于文本框,下拉列表框,单选框该方法可返回元素的值(多选框只能返回第一个值)。如果为多选下拉列表框,则返回一个包含所有选择值的数组。
3.合成事件 hover():模拟光标悬停时间。当光标移动到元素上时,会触发指定的第一个函数,当光标移出这个元素时,会触发指定的第二个函数。如,悬停效果:$("td").hover( function () {$(this).addClass("hover");}, function () {$(this).removeClass("hover");}); toggle():用于模拟鼠标连续单击事件。第一次单击元素,触发指定的第一个函数,当再一次单击同一个元素时,则触发指定的第二个函数,如果有更多个函数,则依次触发,直到最后一个。如,设置元素的选择与非选中效果: $("td").toggle( function () {$(this).addClass("selected");}, function () {$(this).removeClass("selected");}); 使用toggle()而不传递参数,效果为切换元素的可见状态。
4.事件的冒泡 事件会按照 DOM 层次结构像水泡一样不断向上只止顶端。 解决:在事件处理函数中返回 false,会对事件停止冒泡。还可以停止元素的默认行为。 目前的所有UI交互或其事件,都支持这个特性。在自己的事件处理函数返回false将中止事件的继续向下传递。返回true事件继续向下传递。