第二十七天 Java基础学习(二十一)

一、、jQuery选择器

jQuery提供了丰富的选择器功能,jQuery选择器比JavaScript选择器更加的强大。

●JavaScript是如何直接获取元素节点

• getElementByld():返回一个元素节点对象

• getElementsByName( ):返回多个元素节点(节点数组)

•getElementsByClassName():返回多个元素节点对象(节点数组)

• getElementsByTagName():返回多个元素节点对象(节点数组)

●基本选择器 

1.id选择器:$("#id属性值”)

2.class选择器:$(".class属性值")$("p.aa")p标签并且有class="aa"的属性

3.标签选择器:$("标签名”)

4.通用选择器:$(”*")获取页面中的所有标签(html head title body..)

5.并集选择器:$("选择器,选择器,...")获取到每一个选择器获取到的元素

6.后代选择器:$("选择器1选择器2”)获取选择器1获取到元素的后代元素(选择器2获取到的后代元素)

7.子选择器:$("选择器1>选择器2")获取选择器1获取到元素的直接子元素(选择器2获取到的直接子元素)

8.后面第一个兄弟元素节点 prev + next

9.后面所有的兄弟元素节点prev~next

●属性选择器

1.[attribute]匹配包含给定属性的元素 

2.[attribute1][attribute2]复合属性选择器,需要同时满足多个属性

3.[attribute=value]匹配给定的属性是某个特定值的元素

4.[attribute!=value]匹配所有属性不等于特定值的元素

5. [attribute^=value]匹配给定的属性是以某些值开始的元素

6.[attribute$=value] 匹配给定的属性是以某些值结尾的元素

7.[attribute*=value]匹配给定的属性是以包含某些值的元素

●位置选择器 

•针对整个页面而言的位置选择器

1.:first 获取第一个元素

2.:last 获取最后一个元素

3.:odd匹配所有索引值为奇数的元素,从0开始计数

4.:even匹配所有索引值为偶数的元素,从0开始计数

5.:eq(n) 匹配一个给定索引值的元素,从0开始计数

6.:gt(n) 匹配所有大于给定索引值的元素

7.:It(n) 匹配所有小于给定索引值的元素

•针对上级标签而言的位置选择器

1.:first-child 匹配第一个子元素

2.:last-child匹配最后一个子元素

3.:nth-child(n)匹配其父元素下的第N个子元素

4.:nth-child(odd| even) 匹配其父元素下的奇偶元素

•第几个索引的元素:$(”选择器:eq(n)")

•奇数:$("选择器:odd")

•偶数:$("选择器:even")

•大于指定索引:$("选择器:gt(n)")

•小于指定索引:$("选择器:1t(n)")

●表单选择器 

•关于表单项的选择器

1.:text :password :radio :checkbox:hidden :file :submit

2.:input 匹配所有input,textarea,select和button元素

•注意:S("input")和$(":input")的区别

1.$("input"):标签选择器,只匹配input标签

2.$(":input"):匹配所有input,textarea,select和button等元素

•关于表单项状态的选择器

1.:selected :checked :disabled

•通过选择器获取到元素节点,后去到元素节点后,才可以操作元素节点,操作该元素节点的属性结点,该元素节点的文本节点,该元素节点的样式

二、jQuery事件机制 

事件驱动:监听对应的事件,触发了对应的事件,事件会被监听到,监听到事件后驱动函数的执行。

将由传统的HTML元素上完成事件的绑定改为由js/jQuery代码来完成对HTML元素的事件的添加操作。将事件和HTML元素之间进行解耦合。

●jQuery给元素绑定事件的格式:

$(function(){

        $('选择器’).事件(function()

        });

})

●注意:

1.使用jQuery给元素绑定事件时,要写在页面加载完事件内。

2.这里的事件可以是click、blur、focus等等。不要写on。

三、jQuery动画

jQuery提供的动画中大致上有显示、隐藏、滑动、淡入、淡出等,还有自定义动画效果的方法。

•显示和隐藏动画

实现显示动画效果方法:show()

实现隐藏动画效果方法:hide()

实现切换显示和隐藏动画效果方法:toggle()

四、DOM编程

●操作文本

• html() 相当于innerHTML

      html()获取文本节点(标签+文本)

     html(标签) 添加标签,会覆盖原有的所有内容

•text()相当于innerText

        text() 获取文本节点(文本)

        text(文本内容)添加文本,会覆盖原有的所有内容

●操作属性 

• attr(属性名) 获取属性值

• attr(属性名,属性值)设置属性值

•removeAttr(属性名)移除属性

•prop(属性名) 获取属性值

• prop(属性名,属性值)设置属性值

          jQuery 1.6新增加prop()方法。如checked, selected、readonly、disabled使用prop()时,返回值是true或者false,更加方便处理。

•val() 获取value属性值

• val(值) 设置value属性值

●操作元素

•append()、appendTo()添加子元素节点(末尾)

          父元素节点.append(新的子元素节点)

          新的子元素节点appendTo(父元素节点)

•prepend()、prependTo()添加子元素节点(前置)

•before()、insertBefore()添加平级元素节点(前面)

•after()、insertAfter()添加平级元素节点(后面)

•parent() 获取父元素节点

•remove()删除元素节点

•empty()删除子元素节点

五、操作CSS

可以通过JavaScript或jQuery对页面元素的样式进行动态设置,实现页面样式的动态改变。

●直接操作CSS样式

css(css)

css(css,val)

css({css1:val1,css2:val2.....})

•本质上是修改指定元素的style属性的值。

•缺点是会涉及多个css样式的修改,稍显繁琐。可以将多个cSs样式定义为class类样式,直接操作class属性值即可。

●操作类样式

•addClass(值) 追加类属性值,而不是覆盖

• removeClass(值) 移除属性值

•toggleClass(值) 不存在,添加。存在,移除

•本质是修改指定元素的class属性值。

• addClass()只负责追加,而不是覆盖,所以必要时需要和removeClass()结合使用

六、表单验证

进行表单验证:保证数据符合要求

进行JavaScript或者jQuery表单验证:降低服务器端负担

●用户注册时进行表单验证

验证要求:

1.用户名不能为空

2.用户名长度大于6

3.密码同用户名的校验

4.邮箱格式正确,必须包含@

缺点:

仅能简单的校验长度,是否为空,是否为数字等。

对于用户名、密码、邮箱、手机号码、邮箱等验证,可以使用正则表达式进行验证,严谨而且简单。

七、正则表达式

使用正则表达式原因:简洁的代码;严谨的验证文本框中内容

● 正则表达式举例

1.匹配国内电话号码:^\d{3}-\d{8}|\d{4}-\d{7}$

2.匹配腾讯QQ号:^1-9{4,} $

3.匹配中国邮政编码:^\d{6} $

4.匹配身份证:^\d{15}\d{18} $

5.匹配由数字和26个英文字母组成的字符串^[A-Za-z0-9]+$

6. 匹配Email地址:^\w+([-+.]\w+)@lw+([-]w+).\W+([.]\W+)*$

7.匹配中文字符的正则表达式:^u4e00-\u9fa5]$

什么是正则表达式

●正则表达式

1.Regular Expression,在代码中常简写为regex

2.正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串。

3.在很多文本编辑器里,正则表达式通常被用来检索、替换那些符合某个模式的文本。如何创建正则表达式

●如何创建正则表达式

1.var reg=/china/;

2. var reg=new RegExp("china");

●正则表达式的通配符号

[abc]            匹配任意一个字符即可

[^abc]           匹配任意一个不再指定中的字符即可

[0-9]           匹配e-9之间的任意一个数字

[a-z]           匹配小写字母a-z之间的任意一个字母 26

[A-Z]          匹配大写字母A-Z之间的任意一个字母 26

[A-z]           匹配大写字母A-z之间的任意一个字母 52

[A-z0-9]       匹配大写字母A-z之间获取0-9之间的任意一个字母

(red|blue|green):匹配任意一个单词

\w                字母,数字,_

\W              除了字母,数字,_,其它都符合

\d               数字

\D              除了数字的其他字符

^               以什么开始

$               以什么结束

+              至少一个

*               零个|多个

/…/           代表一个模式的开始和结束

^               匹配字符串的开始

\s              任何空白字符

\S              任何非空白字符

.              除了换行符之外的任意字符

●正则表达式的重复字符

{n}          匹配前一项n次

{n,}        匹配前一项n次,或者多次

{n,m}      匹配前一项至少n次,但是不能超过m次

*           匹配前一项0次或多次,等价于{0,}

+           匹配前一项1次或多次,等价于{1,}

?           匹配前一项0次或1次,也就是说前一项是可选的,等价于{0,1}

●RegExp 对象属性

FF:Firefox, IE: Internet Explorer

global            RegExp对象是否具有标志g。

ignoreCase      RegExp对象是否具有标志i。

lastIndex       一个整数,标示开始下一次匹配的字符位置。

multiline         RegExp对象是否具有标志m。

source            正则表达式的源文本。

八、JavaWeb中路径的说明

1.JavaWeb中的路径

在JavaWeb中,路径分为相对路径和绝对路径两种:

•相对路径: 

      / 表示当前目录(可省略)

      ../ 表示当前文件所在目录的上一级目录

•绝对路径:

        http://ip:port/工程名/资源路径

●在JavaWeb中/的不同意义

•/斜杠 如果被浏览器解析,得到的地址是:http://ip:port/

       <a href="/"斜杠</a>

        <form action="/">

•/斜杠 如果被服务器解析,得到的地址是:http://ip:port/工程路径/

        <url-pattern>/Servlet1</url-pattern>

         request.getRequestDispatcher("/”)

•特殊情况:response.sendRedirect("");把斜杆发给浏览器去解析,得到http://ip:port/

九、AJAX

●目前浏览器和服务器交互的请求发送方式

•浏览器和服务器进行数据交互的基本流程为:

1.浏览器发起http请求

2.服务器收到请求,对请求进行解析

3.服务器根据请求解析结果调用对应的资源处理请求

4.服务器将处理结果响应给浏览器

5.浏览器收到响应结果,对结果数据进行解析 

6.浏览器将解析后的数据展示在页面

●可以让浏览器发送请求的方式有:

1.在浏览器地址栏输入url地址后回车

2.使用超链接

3.使用form表单

4.在js代码中使用window.location.href

●Ajax

Ajax(Asynchronous Javascript And XML)是由浏览器解析运行的基于JavaScript实现的网页局部刷新的技术。

作用: 

实现了在当前网页中显示新的响应内容。(不会覆盖掉原有内容)

特点:

1.一种新的让浏览器发起http请求的技术

2.使用ajax发起的请求,响应结果不会自动的覆盖原有内容,而是可以在原有页面内容上继续显示

3.Ajax是一门基于JavaScript的技术,由浏览器解析运行,是一种前端(客户端)技术

4.简单易用

●传统请求:

1.ur1地址栏发起请求

2.form表单发起请求

3.a超链接发请求

4.location.href 发起请求

由浏览器直接发起请求,服务器响应回什么内容,浏览器展示什么内容,刷新整张页面

●Ajax发送求:

借助于xhr对象发送请求

页面不动,发起请求,接收到客户端响应的数据。

●同步与异步请求

●同步请求:

•发送请求后,一直等待服务端的响应,获取到服务端响应,再执行其他的逻辑代码。

1.在浏览器地址栏输入url,发起请求

2.使用超链接,发起请求

3.使用form表单,发起请求

4.在js代码中使用window.location.href,发起请求

5. ajax发起同步请求

ajax与其他方式发送同步请求的区别:ajax可以局部刷新,其他的请求会刷新整张页面

●异步请求:

•发送请求后,不需要等待服务端的响应,继续按照顺序执行其他逻辑代码,监听到响应,自动调用指定的方法。

1.ajax发起异步请求

●Ajax的同步和异步设置

Ajax执行步骤:

1.创建Ajax请求对象

2.建立连接

3.发送连接

4.监听状态变化及结果处理

● Ajax的get请求和post请求及请求参数

•Ajax设置get请求方式及携带请求参数:

Ajax的get请求的请求参数是直接写在请求路径后面

●Ajax设置post请求方式及携带请求参数:

•Ajax的post请求传递参数是需要单独写在send方法中,而且需要设置请求头,该请求头表示此次请求是以表单的方式提交

●readyState的值表示的含义:

• 0:请求没有开启(在调用open()之前)

•1:请求已经建立但是还没有发出(调用send()之前)

•2:请求已经发出,服务器正在处理

•3:请求已经处理,响应中有数据可用,但是服务器还没有完全响应完

• 4:响应已经完成,浏览器已经接收到全部的响应内容

●Ajax请求的响应状态

通过对ajax的就绪状态做判断,在就绪状态是4的情况下编写对响应结果的处理逻辑代码,但是不是任何响应结果都要处理,因为服务器的响应也有状态码,比如:200、404、500等等。

所有在ajax中编写响应结果处理时,也必须考虑响应状态码。

●Ajax_jQuery封装ajax_没有参数

jQuery为js的函数库,将js复杂的操作进行了函数式的封装。

调用jQuery中的函数即可.

注意:必须使用jQuery对象调用jQuery中的函数.

传统的请求:同步请求,浏览器直接发起请求,一致等待服务端的响应,响应回来后刷新整张页面.

1.地址栏

2.a超链按

3.form表单

4.location.href

●ajax:借助与xhr对象发送请求,接收响应,页面不动还可以向服务端发起请求,接收响应,局部刷新.

1.同步请求

xhr发送同步请求后,等待服务端的响应.

2.异步请求

xhr发送异步请求后,继续执行,通过监听准备状态的变化驱动函数的执行,获取响应的数据,事件回调(回调函数)

十、jQuery封装的ajax的使用

目前编写的Ajax代码访问服务器及对响应结果的处理流程如下:

1.在页面编Ajax相关代码

2.用户通过浏览器访问页面

3.用户在浏览器中触发事件,发起ajax请求

4.服务器收到请求进行处理,处理完后按照json格式的字符串响应给浏览器

5.浏览器收到响应数据后,触发回调函数的执行,将响应结果展示在当前的页面

jQuery是js的一个库,其实jQuery中已经对Ajax完成了封装,形式多样:

●第一种:

$.ajax()

dataType:用来指定服务器返回来的数据类型,可选值有如下: 

   xml:表示服务器返回的是xml内容

   html:表示服务器返回的是html文本内容

    script:表示服务器返回的是script文本内容

    json:表示服务器返回的是json内容(重点)

    jsonp:表示使用jsonp形式调用函数,早期我们用它来解决跨域问题

    text:表示服务器返回的是纯文本字符串

●第二种:

     $.get“请求地址”,“请求参数”,回调函数,返回的数据类型)

      $.post(“请求地址”,“请求参数”,回调函数返回的数据类型)

回调函数主要是用来处理服务器对我们的响应结果。

返回的数据类型这个参数用来设置服务器返回来的数据类型,可以是xml,html,script,json,text。

●第三种:

      $.getJSON("请求地址”,"请求参数”,"回调函数”)

这种方式要求服务器返回的数据类型得是json格式的。

●第四种:

      $.getScript("请求地址”,"回调函数")

这种方式是发送ajax请求获取一个js文件。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值