J2EE学习篇之--JQuery技术详解

2020-12-13 17:00

阅读:296

YPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

标签:des   style   class   blog   code   java   

前面我们讲解了的J2EE的技术都是服务端的技术,下面我们来看一下前端的一些开发技术,这一篇我们来看一下jQuery技术


简介:

jQuery由美国人John Resig创建,至今已吸引了来自世界各地的众多

javascript高手加入其team。
jQuery是继prototype之后又一个优秀的Javascript框架。其宗旨是——WRITE LESS,DO MORE,写更少的代码,做更多的事情。
它是轻量级的js库(压缩后只有21k) ,这是其它的js库所不及的,它兼容CSS3,还兼容各种浏览器 (IE 6.0+, FF 1.5+, Safari 2.0+, Opera 9.0+)。
jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互。
jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

jQuery能够使用户的html页保持代码和html内容分离,也就是说,不用再在html里面插入一堆js来调用命令了,只需定义id即可。


工具:

我们在使用MyEclipse中编写jQuery的时候,是没有任何提示的,所以写代码很难受的,我们需要借助额外的工具Aptana,这个在编写js,jQuery,Ajax等都会有相关的提示,具体如何在MyEclipse中添加这个工具,看如下的一篇文章:

http://blog.csdn.net/jiangwei0910410003/article/details/28423545


jQuery的一个简单例子:

   
    
这里要注意的是一定要记得引入jquery的js库:jquery-1.4.2.js文件


jQuery对象

jQuery 对象就是通过jQuery包装DOM对象后产生的对象。
jQuery 对象是 jQuery 独有的. 如果一个对象是 jQuery 对象, 那么它就可以使用 jQuery 里的方法: $(“#test”).html();
比如: 
$("#test").html() 意思是指:获取ID为test的元素内的html代码。其中html()是jQuery里的方法 
这段代码等同于用DOM实现代码: 
document.getElementById(" test ").innerHTML; 
虽然jQuery对象是包装DOM对象后产生的,但是jQuery无法使用DOM对象的任何方法,同理DOM对象也不能使用jQuery里的方法.乱使用会报错
约定:如果获取的是 jQuery 对象, 那么要在变量前面加上 $. 
var $variable = jQuery对象
var variable = DOM对象


DOM对象转化成jQuery对象

对于已经是一个DOM对象,只需要用$()把DOM对象包装起来,就可以获得一个jQuery对象了。$(DOM对象) 

soscw.com,搜素材

转换后就可以使用 jQuery 中的方法了


jQuery对象转化成DOM对象

两种转换方式将一个jQuery对象转换成DOM对象:[index]和.get(index); 
(1) jQuery对象是一个数组对象,可以通过[index]的方法,来得到相应的DOM对象

soscw.com,搜素材

(2) jQuery本身提供,通过.get(index)方法,得到相应的DOM对象                        

soscw.com,搜素材


jQuery选择器

选择器是 jQuery 的根基, 在 jQuery 中, 对事件处理, 遍历 DOM 和 Ajax 操作都依赖于选择器
jQuery 选择器的优点:
简洁的写法                                                                                    
${“#id”}   等价于    document.getElementById("id");
${“tagName”}     等价于   document.getElementsByTagName("tagName");

完善的事件处理机制
val()获得第一个匹配元素的当前值.

//若网页中没有id=value的元素,浏览器会报错
document.getElementById("username").value;
   
//需要判断document.getElementById("username")是否存在

if(document.getElementById("username")){
  var username=document.getElementById("username");
  alert(username.value);
}else{
  alert("没有该id元素");
}

//使用JQUERY处理即使不存在也不会报错
var $username=$("#username");
alert("^^^ "+$username.val());

//注意:在javaScript中函数返回值为空,表示false


基本选择器:

基本选择器是 jQuery 中最常用的选择器, 也是最简单的选择器, 它通过元素 id, class 和标签名来查找 DOM 元素(在网页中 id 只能使用一次, class 允许重复使用).
1、#id用法: $(”#myDiv”);    返回值  单个元素的组成的集合
说明: 这个就是直接选择html中的id=”myDiv”
2、Element用法: $(”div”)     返回值  集合元素
说明: element的英文翻译过来是”元素”,所以element其实就是html已经定义的标签元素,例如 div, input, a 等等.
3、class 用法: $(”.myClass”)      返回值  集合元素
说明: 这个标签是直接选择html代码中class=”myClass”的元素或元素组(因为在同一html页面中class是可以存在多个同样值的).
4、*用法: $(”*”)      返回值  集合元素
说明: 匹配所有元素,多用于结合上下文来搜索
5、selector1, selector2, selectorN      用法: $(”div,span,p.myClass”)    返回值  集合元素
说明: 将每一个选择器匹配到的元素合并后一起返回.你可以指定任意多个选择器, 并将匹配到的元素合并到一个结果内.其中p.myClass是表示匹配元素
p class=”myClass”


基本选择器示例:

改变 id 为 one 的元素的背景色为 #0000FF
改变 class 为 mini 的所有元素的背景色为 #FF0033
改变元素名为

的所有元素的背景色为 #00FFFF
改变所有元素的背景色为 #00FF33
改变所有的元素和 id 为 two 的元素的背景色为 #3399FF

base_selecter.html	
1 2 3
嘿嘿
div1
div2
div3
span1 span2

层次选择器:

如果想通过 DOM 元素之间的层次关系来获取特定元素, 例如后代元素, 子元素, 相邻元素, 兄弟元素等, 则需要使用层次选择器.
1 、ancestor descendant
用法: $(”form input”) ;   返回值  集合元素
说明: 在给定的祖先元素下匹配所有后代元素.这个要下面讲的”parent > child”区分开.
2、parent > child 用法: $(”form > input”) ;    返回值  集合元素
说明: 在给定的父元素下匹配所有子元素.注意:要区分好后代元素与子元素
3、prev + next
用法: $(”label + input”) ;   返回值  集合元素
说明: 匹配所有紧接在 prev 元素后的 next 元素
4、prev ~ siblings
用法: $(”form ~ input”) ;    返回值  集合元素
说明: 匹配 prev 元素之后的所有 siblings 元素.注意:是匹配之后的元素,不包含该元素在内,并且siblings匹配的是和prev同辈的元素,其后辈元素不被匹配.
注意:  (“prev ~ div”) 选择器只能选择 “# prev ” 元素后面的同辈元素; 而 jQuery 中的方法 siblings() 与前后位置无关, 只要是同辈节点就可以选取


层次选择器示例:

改变所有td中标签的字体
改变所有td中但不是td孙子以下的标签的颜色
改变id为one的下一个td背景色
改变id为two的所有div的背景色


  
    base_selecter.html
1 2
div中的
3
嘿嘿
div1
div2
div3
div4
span1 span2

过滤选择器:

过滤选择器主要是通过特定的过滤规则来筛选出所需的 DOM 元素, 该选择器都以 “:” 开头
按照不同的过滤规则, 过滤选择器可以分为基本过滤, 内容过滤, 可见性过滤, 属性过滤, 子元素过滤和表单对象属性过滤选择器.


基础过滤选择器:

1、:first
用法: $(”tr:first”) ;  返回值  单个元素的组成的集合
      说明: 匹配找到的第一个元素
2、:last
用法: $(”tr:last”)  返回值  集合元素
      说明: 匹配找到的最后一个元素.与 :first 相对应.
3、:not(selector)
用法: $(”input:not(:checked)”)返回值  集合元素
     说明: 去除所有与给定选择器匹配的元素.有点类似于”非”,意思是没有被选中的input(当input的type=”checkbox”).
4、:even
用法: $(”tr:even”)  返回值  集合元素
     说明: 匹配所有索引值为偶数的元素,从 0 开始计数.js的数组都是从0开始计数的.例如要选择table中的行,因为是从0开始计数,所以table中的第一个tr就为偶数0.
5、: odd
用法: $(”tr:odd”) 返回值  集合元素
      说明: 匹配所有索引值为奇数的元素,和:even对应,从 0 开始计数.
6、:eq(index) 用法: $(”tr:eq(0)”)    返回值  集合元素
      说明: 匹配一个给定索引值的元素.eq(0)就是获取第一个tr元素.括号里面的是索引值,不是元素排列数.
7、:gt(index) 用法: $(”tr:gt(0)”)    返回值  集合元素
说明: 匹配所有大于给定索引值的元素.
8、:lt(index) 用法: $(”tr:lt(2)”)    返回值  集合元素  
      说明: 匹配所有小于给定索引值的元素.
9、:header(固定写法) 用法: $(”:header”).css(”background”, “#EEE”)    返回值  集合元素
      说明: 匹配如 h1, h2, h3之类的标题元素.这个是专门用来获取h1,h2这样的标题元素.
10、:animated(固定写法)   返回值  集合元素
      说明: 匹配所有正在执行动画效果的元素 

基础过滤选择器示例:
改变第一个 div 元素的背景色为 #0000FF
改变最后一个 div 元素的背景色为 #0000FF
改变class不为 one 的所有 div 元素的背景色为 #0000FF
改变索引值为偶数的 div 元素的背景色为 #0000FF
改变索引值为奇数的 div 元素的背景色为 #0000FF
改变索引值为大于 3 的 div 元素的背景色为 #0000FF
改变索引值为等于 3 的 div 元素的背景色为 #0000FF
改变索引值为小于 3 的 div 元素的背景色为 #0000FF
改变所有的标题元素的背景色为 #0000FF
改变当前正在执行动画的所有元素的背景色为 #0000FF



  
    baseFilter_selecter.html

h2

h5

h3

div1
div2
div3
div4
div5
div6
div7
div8
div9

动画
增加动画效果 $("#b10").click(function(){ $(":animated").css("background-color", "yellow"); }); function ca(){ $("#mover").slideToggle(800, ca); } ca();

内容过滤选择器:

内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上
1、:contains(text) 用法: $(”div:contains(’John’)”)    返回值  集合元素
      说明: 匹配包含给定文本的元素.这个选择器比较有用,当我们要选择的不是dom标签元素时,它就派上了用场了,它的作用是查找被标签”围”起来的文本内容是否符合指定的内容的.
2、:empty 用法: $(”td:empty”)   返回值  集合元素
      说明: 匹配所有不包含子元素或者文本的空元素
3、:has(selector)
      用法: $(”div:has(p)”).addClass(”test”)    返回值  集合元素
      说明: 匹配含有选择器所匹配的元素的元素.这个解释需要好好琢磨,但是一旦看了使用的例子就完全清楚了:给所有包含p元素的div标签加上class=”test”.
4、:parent 用法: $(”td:parent”)   返回值  集合元素
      说明: 匹配含有子元素或者文本的元素.注意:这里是”:parent”,可不是”.parent”哦!感觉与上面讲的”:empty”形成反义词.

内容过滤选择器示例:
改变含有文本 ‘di’ 的 div 元素的背景色为 #0000FF
改变不包含子元素(或者文本元素) 的 div 空元素的背景色为 #0000FF
改变含有 class 为 mini 元素的 div 元素的背景色为 #0000FF
改变含有子元素(或者文本元素)的div元素的背景色为 #0000FF
改变不含有文本 di; 的 div 元素的背景色


  
    contentFilter_selecter.html
id为one div

id为two class是mini div

id为two class是mini
1 1

可见度过滤选择器:

可见度过滤选择器是根据元素的可见和不可见状态来选择相应的元素
1、:hidden 用法: $(”tr:hidden”)  返回值  集合元素
     说明: 匹配所有的不可见元素,input 元素的 type 属性为 “hidden” 的话也会被匹配到.意思是css中display:none和input type=”hidden”的都会被匹配到.同样,要在脑海中彻底分清楚冒号”:”, 点号”.”和逗号”,”的区别.
2、:visible 用法: $(”tr:visible”)  返回值  集合元素
    说明: 匹配所有的可见元素.

可见度过滤选择器示例:
改变所有可见的div元素的背景色为 #0000FF
选取所有不可见的元素, 利用 jQuery 中的 show() 方法将它们显示出来, 并设置其背景色为 #0000FF
选取所有的文本隐藏域, 并打印它们的值


  
    visiableFilter_selecter.html
可见
可见
不可见


评论


亲,登录后才可以留言!