JavaWeb(八)JQuery

jQuery

市场用得比较多两个框架: jQuery 比较适合做一些互联网 的应用(12306.com,蘑菇街,美丽说,聚美)

extjs 比较适合做后台管理系统(电商(订单管理),银行,电信)

核心:

主要功能:javascript开发人员查找元素、操作DOM、处理事件、执行动画和开发Ajax的操作。优势:(宗旨:write less ,do more 写更少的代码,做更多的事情)

1:轻量级 (js 库非常小)

2:强大的选择器(获取页面上面的dom 元素 document.getElementById() 操作dom 必须先得到dom )

3:出色的DOM操作的封装

4:可靠的事件处理机制(对事件进行了一个封装)

5:完善的Ajax(底层封装xmlhttprequest)

6:不污染*变量(在jquery 里面只有一个对象 jQuery == $)

7:出色的浏览器兼容性

8:链式操作方式($("#ddd").addClass().removeClass())

9:隐式迭代 (显示迭代:迭代一个数组) 显示迭代(for(var i=0;i<array.length;i++){ }) 隐身迭代屏蔽掉for 操作

10:行为层与结构层的分离 11:丰富的插件支持 后期扩展非常方便 12:完善的文档

JQuery加载

从  http://jquery.com/  下载后,复制到项目(路径:WebContent/js)中,然后在页面生命:

 <script type="text/javascript" src="js/jquery-3.2.1.min.js"></script>

或者从CDN中引用,比如百度:

 <script src="https://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"> </script>

jQuery 只有一个对象 (jQuery == $) 一定要搞清楚jQuery 与dom 对象之间的区别于联系

dom对象:dom 对象 是浏览器自带对象,dom 对象只能调用dom 里面的属性和方法, 不能调用jQuery 对象里面的属性和方法 jQuery对象:jquery 对象是通过jQuery 包装页面上面的元素或者dom 而产生的一个新的 对象,jquery 对象时jQuery 独有的,不能调用dom 对象里面的属性和方法,jQuery 对象是一个数组。 jQuery 对象与dom 对象时可以相互转换的,转换之后它们就可以相互调用了

jQuery 选择器

注意,如果获取到多个元素将是一个数组,可以直接用数组的属性方法,比如 length

当前元素:

 $(this)    :当前 HTML 元素

元素选择器

jQuery 使用 CSS 选择器来选取 HTML 元素。

  $("p")            :选取 <p> 元素。
  $("p.intro")      :选取所有 class="intro" 的 <p> 元素。
  $("p#demo")       :选取有 id="demo" 的 <p> 元素。

属性选择器

jQuery 使用 XPath 表达式来选择带有给定属性的元素。

1  $("[href]")         :选取所有带有 href 属性的元素。
  $("[href='#']")     :选取所有带有 href 值等于 "#" 的元素。
  $("[href!='#']")    :选取所有带有 href 值不等于 "#" 的元素。
  $("[href$='.jpg']") :选取所有 href 值以 ".jpg" 结尾的元素。

CSS 选择器

jQuery CSS 选择器可用于改变 HTML 元素的 CSS 属性。

 把所有 p 元素的背景颜色更改为红色:
 $("p").css("background-color","red");

jQuery选择器一览:

选择器 实例 选取
* $("*") 所有元素
#id $("#lastname") id="lastname" 的元素
.class $(".intro") 所有 class="intro" 的元素
element $("p") 所有 <p> 元素
.class.class $(".intro.demo") 所有 class="intro" 且 class="demo" 的元素
     
:first $("p:first") 第一个 <p> 元素
:last $("p:last") 最后一个 <p> 元素
:even $("tr:even") 所有偶数 <tr> 元素
:odd $("tr:odd") 所有奇数 <tr> 元素
     
:eq(index) $("ul li:eq(3)") 列表中的第四个元素(index 从 0 开始)
:gt(no) $("ul li:gt(3)") 列出 index 大于 3 的元素
:lt(no) $("ul li:lt(3)") 列出 index 小于 3 的元素
:not(selector) $("input:not(:empty)") 所有不为空的 input 元素
     
:header $(":header") 所有标题元素 <h1> - <h6>
:animated   所有动画元素
     
:contains(text) $(":contains('W3School')") 包含指定字符串的所有元素
:empty $(":empty") 无子(元素)节点的所有元素
:hidden $("p:hidden") 所有隐藏的 <p> 元素
:visible $("table:visible") 所有可见的表格
     
s1,s2,s3 $("th,td,.intro") 所有带有匹配选择的元素
     
[attribute] $("[href]") 所有带有 href 属性的元素
[attribute=value] $("[href='#']") 所有 href 属性的值等于 "#" 的元素
[attribute!=value] $("[href!='#']") 所有 href 属性的值不等于 "#" 的元素
[attribute$=value] $("[href$='.jpg']") 所有 href 属性的值包含以 ".jpg" 结尾的元素
     
:input $(":input") 所有 <input> 元素
:text $(":text") 所有 type="text" 的 <input> 元素
:password $(":password") 所有 type="password" 的 <input> 元素
:radio $(":radio") 所有 type="radio" 的 <input> 元素
:checkbox $(":checkbox") 所有 type="checkbox" 的 <input> 元素
:submit $(":submit") 所有 type="submit" 的 <input> 元素
:reset $(":reset") 所有 type="reset" 的 <input> 元素
:button $(":button") 所有 type="button" 的 <input> 元素
:image $(":image") 所有 type="image" 的 <input> 元素
:file $(":file") 所有 type="file" 的 <input> 元素
     
:enabled $(":enabled") 所有激活的 input 元素
:disabled $(":disabled") 所有禁用的 input 元素
:selected $(":selected") 所有被选取的 input 元素
:checked $(":checked") 所有被选中的 input 元素

dom 操作 (节点的查找)

页面上面的元素分为三种类型的节点

1:元素节点 (9 大选择器都是用来找元素节点)

2:属性节点 (先找到元素节点,然后调用attr())

3:文本节点 (先找到元素节点然后调用text())

节点的创建: 元素节点的创建,属性节点,文本节点

jQuery 当中的事件

通常会把 jQuery 代码放到 <head>部分的事件处理方法中:

页面加载完毕执行:

window.onload=function(){

}

$(function(){

})

$().ready(function(){

})

区别:window.onload 与 $(function(){}) 都是用来作于界面渲染完毕之后的初始化操作..

window.onload 需要等待页面上面所有的元素都绘制完毕之后才执行,包含图片。

$(function(){}) 页面上面所有的dom 元素绘制完毕之后就执行,不包含图片。

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8" />
         <title></title>
         <script src="js/jquery-3.2.1.min.js"></script>
         <style type="text/css">
             div{
                 width: 60px;
                 height: 60px;
                 background-color: aquamarine;
                 margin: 2px;
             }
         </style>
     </head>
     <body>
         <div>这是1段文字</div>
         <div>这是2段文字</div>
         <div>这是3段文字</div>
     </body>
 </html>
 <script type="text/javascript">
     $("div").click(function(){
         $(this).hide();//单击隐藏该div
     });
 </script>

jQuery 中事件方法的一些例子:

Event 函数 绑定函数至
$(document).ready(function) 将函数绑定到文档的就绪事件(当文档完成加载时)
$(selector).click(function) 触发或将函数绑定到被选元素的点击事件
$(selector).dblclick(function) 触发或将函数绑定到被选元素的双击事件
$(selector).focus(function) 触发或将函数绑定到被选元素的获得焦点事件
$(selector).mouseover(function) 触发或将函数绑定到被选元素的鼠标悬停事件

事件一览:

方法 描述
bind() 向匹配元素附加一个或更多事件处理器
blur() 触发、或将函数绑定到指定元素的 blur 事件
change() 触发、或将函数绑定到指定元素的 change 事件
click() 触发、或将函数绑定到指定元素的 click 事件
dblclick() 触发、或将函数绑定到指定元素的 double click 事件
delegate() 向匹配元素的当前或未来的子元素附加一个或多个事件处理器
die() 移除所有通过 live() 函数添加的事件处理程序。
error() 触发、或将函数绑定到指定元素的 error 事件
event.isDefaultPrevented() 返回 event 对象上是否调用了 event.preventDefault()。
event.pageX 相对于文档左边缘的鼠标位置。
event.pageY 相对于文档上边缘的鼠标位置。
event.preventDefault() 阻止事件的默认动作。
event.result 包含由被指定事件触发的事件处理器返回的最后一个值。
event.target 触发该事件的 DOM 元素。
event.timeStamp 该属性返回从 1970 年 1 月 1 日到事件发生时的毫秒数。
event.type 描述事件的类型。
event.which 指示按了哪个键或按钮。
focus() 触发、或将函数绑定到指定元素的 focus 事件
keydown() 触发、或将函数绑定到指定元素的 key down 事件
keypress() 触发、或将函数绑定到指定元素的 key press 事件
keyup() 触发、或将函数绑定到指定元素的 key up 事件
live() 为当前或未来的匹配元素添加一个或多个事件处理器
load() 触发、或将函数绑定到指定元素的 load 事件
mousedown() 触发、或将函数绑定到指定元素的 mouse down 事件
mouseenter() 触发、或将函数绑定到指定元素的 mouse enter 事件
mouseleave() 触发、或将函数绑定到指定元素的 mouse leave 事件
mousemove() 触发、或将函数绑定到指定元素的 mouse move 事件
mouseout() 触发、或将函数绑定到指定元素的 mouse out 事件
mouseover() 触发、或将函数绑定到指定元素的 mouse over 事件
mouseup() 触发、或将函数绑定到指定元素的 mouse up 事件
one() 向匹配元素添加事件处理器。每个元素只能触发一次该处理器。
ready() 文档就绪事件(当 HTML 文档就绪可用时)
resize() 触发、或将函数绑定到指定元素的 resize 事件
scroll() 触发、或将函数绑定到指定元素的 scroll 事件
select() 触发、或将函数绑定到指定元素的 select 事件
submit() 触发、或将函数绑定到指定元素的 submit 事件
toggle() 绑定两个或多个事件处理器函数,当发生轮流的 click 事件时执行。
trigger() 所有匹配元素的指定事件
triggerHandler() 第一个被匹配元素的指定事件
unbind() 从匹配元素移除一个被添加的事件处理器
undelegate() 从匹配元素移除一个被添加的事件处理器,现在或将来
unload()

触发、或将函数绑定到指定元素的 unload 事件

jQuery 效果函数

方法 描述
animate() 对被选元素应用“自定义”的动画
clearQueue() 对被选元素移除所有排队的函数(仍未运行的)
delay() 对被选元素的所有排队函数(仍未运行)设置延迟
dequeue() 运行被选元素的下一个排队函数
fadeIn() 逐渐改变被选元素的不透明度,从隐藏到可见
fadeOut() 逐渐改变被选元素的不透明度,从可见到隐藏
fadeTo() 把被选元素逐渐改变至给定的不透明度
hide() 隐藏被选的元素
queue() 显示被选元素的排队函数
show() 显示被选的元素
slideDown() 通过调整高度来滑动显示被选元素
slideToggle() 对被选元素进行滑动隐藏和滑动显示的切换
slideUp() 通过调整高度来滑动隐藏被选元素
stop() 停止在被选元素上运行动画
toggle()

对被选元素进行隐藏和显示的切换

jQuery 文档操作方法

这些方法对于 XML 文档和 HTML 文档均是适用的,除了:html()。

方法 描述
addClass() 向匹配的元素添加指定的类名。
after() 在匹配的元素之后插入内容。
append() 向匹配元素集合中的每个元素结尾插入由参数指定的内容。
appendTo() 向目标结尾插入匹配元素集合中的每个元素。
attr() 设置或返回匹配元素的属性和值。
before() 在每个匹配的元素之前插入内容。
clone() 创建匹配元素集合的副本。
detach() 从 DOM 中移除匹配元素集合。
empty() 删除匹配的元素集合中所有的子节点。
hasClass() 检查匹配的元素是否拥有指定的类。
html() 设置或返回匹配的元素集合中的 HTML 内容。
insertAfter() 把匹配的元素插入到另一个指定的元素集合的后面。
insertBefore() 把匹配的元素插入到另一个指定的元素集合的前面。
prepend() 向匹配元素集合中的每个元素开头插入由参数指定的内容。
prependTo() 向目标开头插入匹配元素集合中的每个元素。
remove() 移除所有匹配的元素。
removeAttr() 从所有匹配的元素中移除指定的属性。
removeClass() 从所有匹配的元素中删除全部或者指定的类。
replaceAll() 用匹配的元素替换所有匹配到的元素。
replaceWith() 用新内容替换匹配的元素。
text() 设置或返回匹配元素的内容。
toggleClass() 从匹配的元素中添加或删除一个类。
unwrap() 移除并替换指定元素的父元素。
val() 设置或返回匹配元素的值。
wrap() 把匹配的元素用指定的内容或元素包裹起来。
wrapAll() 把所有匹配的元素用指定的内容或元素包裹起来。
wrapinner()

将每一个匹配的元素的子内容用指定的内容或元素包裹起来。

 <!DOCTYPE html>
 <html>
     <head>
         <meta charset="utf-8" />
         <title></title>
         <script src="js/jquery-3.2.1.min.js"></script>
         <style type="text/css">
             div{
                 width: 60px;
                 height: 60px;
                 background-color: aquamarine;
                 margin: 2px;
             }
                 </style>
         <script>
         $(document).ready(function(){
           $("#btn1").click(function(){
             $("p").append(" <b>追加的文本</b>.");
           });

           $("#btn2").click(function(){
             $("ol").append("<li>追加的list</li>");
           });
         });
         </script>
     </head>
     <body>
         <p>这是一个段落</p>
         <p>这是一个段落</p>
         <ol>
             <li>List1</li>
             <li>List2</li>
             <li>List3</li>
         </ol>
         <button id="btn1">追加文本</button>
         <button id="btn2">追加列表项</button>
     </body>
 </html>

jQuery CSS 操作函数

下面列出的这些方法设置或返回元素的 CSS 相关属性。

CSS 属性 描述
css() 设置或返回匹配元素的样式属性。
height() 设置或返回匹配元素的高度。
offset() 返回第一个匹配元素相对于文档的位置。
offsetParent() 返回最近的定位祖先元素。
position() 返回第一个匹配元素相对于父元素的位置。
scrollLeft() 设置或返回匹配元素相对滚动条左侧的偏移。
scrollTop() 设置或返回匹配元素相对滚动条顶部的偏移。
width() 设置或返回匹配元素的宽度。
 1<!DOCTYPE html> 1 <html>
 <head>
 <script type="text/javascript" src="/jquery/jquery.js"></script>
 <script type="text/javascript">
 $(document).ready(function(){
   $("button").click(function(){
     $("p").css("background-color","red");
   });
 });
 </script>
 </head>

 <body>
 <h2>This is a heading</h2>
 <p>This is a paragraph.</p>
 <p>This is another paragraph.</p>
 <button type="button">Click me</button>
 </body>

 </html>
 <html>
 <head>
 <script src="/jquery/jquery-1.11.1.min.js"></script>
 <script>
 $(document).ready(function(){
   $("button").click(function(){
     alert("Background color = " + $("p").css("background-color"));
   });
 });
 </script>
 </head>

 <body>
 <h2>这是标题</h2>
 <p style="background-color:#ff0000">这是一个段落。</p>
 <p style="background-color:#00ff00">这是一个段落。</p>
 <p style="background-color:#0000ff">这是一个段落。</p>
 <button>返回 p 元素的背景色</button>
 </body>
 </html>

jQuery 遍历函数

jQuery 遍历函数包括了用于筛选、查找和串联元素的方法。

函数 描述
.add() 将元素添加到匹配元素的集合中。
.andSelf() 把堆栈中之前的元素集添加到当前集合中。
.children() 获得匹配元素集合中每个元素的所有子元素。
.closest() 从元素本身开始,逐级向上级元素匹配,并返回最先匹配的祖先元素。
.contents() 获得匹配元素集合中每个元素的子元素,包括文本和注释节点。
.each() 对 jQuery 对象进行迭代,为每个匹配元素执行函数。
.end() 结束当前链中最近的一次筛选操作,并将匹配元素集合返回到前一次的状态。
.eq() 将匹配元素集合缩减为位于指定索引的新元素。
.filter() 将匹配元素集合缩减为匹配选择器或匹配函数返回值的新元素。
.find() 获得当前匹配元素集合中每个元素的后代,由选择器进行筛选。
.first() 将匹配元素集合缩减为集合中的第一个元素。
.has() 将匹配元素集合缩减为包含特定元素的后代的集合。
.is() 根据选择器检查当前匹配元素集合,如果存在至少一个匹配元素,则返回 true。
.last() 将匹配元素集合缩减为集合中的最后一个元素。
.map() 把当前匹配集合中的每个元素传递给函数,产生包含返回值的新 jQuery 对象。
.next() 获得匹配元素集合中每个元素紧邻的同辈元素。
.nextAll() 获得匹配元素集合中每个元素之后的所有同辈元素,由选择器进行筛选(可选)。
.nextUntil() 获得每个元素之后所有的同辈元素,直到遇到匹配选择器的元素为止。
.not() 从匹配元素集合中删除元素。
.offsetParent() 获得用于定位的第一个父元素。
.parent() 获得当前匹配元素集合中每个元素的父元素,由选择器筛选(可选)。
.parents() 获得当前匹配元素集合中每个元素的祖先元素,由选择器筛选(可选)。
.parentsUntil() 获得当前匹配元素集合中每个元素的祖先元素,直到遇到匹配选择器的元素为止。
.prev() 获得匹配元素集合中每个元素紧邻的前一个同辈元素,由选择器筛选(可选)。
.prevAll() 获得匹配元素集合中每个元素之前的所有同辈元素,由选择器进行筛选(可选)。
.prevUntil() 获得每个元素之前所有的同辈元素,直到遇到匹配选择器的元素为止。
.siblings() 获得匹配元素集合中所有元素的同辈元素,由选择器筛选(可选)。
.slice()

将匹配元素集合缩减为指定范围的子集。

 <!DOCTYPE html>
 <html>
 <head>
 <style>
 .ancestors *
 {
 display: block;
 border: 2px solid lightgrey;
 color: lightgrey;
 padding: 5px;
 margin: 15px;
 }
 </style>
 <script src="/jquery/jquery-1.11.1.min.js">
 </script>
 <script>
 $(document).ready(function(){
   $("span").parent().css({"color":"red","border":"2px solid red"});
 });
 </script>
 </head>
 <body>

 <div class="ancestors">
   <div style="width:500px;">div (曾祖父)
     <ul>ul (祖父)
       <li>li (直接父)
         <span>span</span>
       </li>
     </ul>
   </div>

   <div style="width:500px;">div (祖父)
     <p>p (直接父)
         <span>span</span>
       </p>
   </div>
 </div>

 </body>
 </html>
上一篇:python数据库连接池设计


下一篇:【转】Linux下nginx配置https协议访问的方法