第十五章 AJAX JQuery

手把手教你用CODESYS将旧笔记本改造成软PLC(含证书配置避坑指南) 本文提供了一份详尽的指南,教你如何利用CODESYS平台将闲置旧笔记本改造为一台功能完整的软PLC。内容涵盖从硬件评估、系统实时性优化、软件安装与驱动配置,到关键的证书授权管理避坑指南,旨在帮助自动化工程师和爱好者低成本搭建稳定可靠的学习与开发平台。 阅读详情

第十五章 AJAX JQuery

JQuery是另外一个非常流行的JavaScript框架,相对于Dojo来说JQuery更加的轻便,JQuery代码文件的大小为20kb,但是丝毫没有影响到JQuery的强大功能,也许在了解JQuery之后你会有更深刻的体会。并且JQuery使用了插件的体系结构,开发人员可以在JQuery的基础上利用插件的机制扩展JQuery的功能。

 

和JQuery详细的JavaScript框架有Prototype,虽然Prototype和script.aculo.us也可以制作出强大的功能的页面。但是我更喜欢JQuery的简介方式和强大的插件群。

 

JQuery官方网站: http://www.jquery.com

Prototype官方网站: http://www.prototypejs.org

script.aculo.us官方网站: http://script.aculo.us

 

JQuery核心只有一个文件jquery-x.x.x.x.js,其中x.x.x.x表示了文件的版本,现在最新的版本为1.1.3.1。并且为了提高jquery的下载效率,官方网站提供了一个压缩版本的文件,这个文件只有20kb。

 

安装jqueyr只需要将jquery-x.x.x.x.js拷贝到对应web项目的javascript脚本目录即可。

<script type="text/javascript" src="path/to/jquery.js"></script>

 

JQuery 核心

Onload 使用

我们有些时候需要在页面初始化完成的时候调用一些JavaScript预处理操作,例如设置某些Button不可用等,这个时候我们通常有两种选择。

第一:<body onload=”someFunction();”>

第二:window.onload = someFunction;

上述代码意义相同,都会在页面初始化完成之后执行someFunction这个预先定义的JavaScript函数。但是,页面初始化完成到底是什么含义呢?页面初始化完成意味着页面全部被浏览器显示,也就是说所有的image都加载完成。有些时候这个过程非常的常,有些时候我们可以看到有些网站的button先是可用,后来等所有页面显示之后又不可用了就是这个原因。

 

那么我们到底在什么时候执行someFunction是比较合适的呢?我们倾向于页面的全部document内容被加载,而不是所有内容正确显示之后别调用。

 

以img为例说明上述的区别,例如

<img src=”http://hostname:port/webapp/xxx.jpg” />

当上述字面内容被浏览器下载完成时,我们可以说img被加载了,当http://hostname:port/webapp/xxx.jpg指向的内容被下载并且被正确显示之后,可以说img被正确显示了。

 

如何使用JQuery来达到页面内容别加载就执行someFunction?

$(document).ready(someFunction);

 

$()是什么?

$()是JQuery的核心方法,$()方法有几种不同的调用方式,但是这几种方式都有一个共通的特点,就是通过$()方法,可以将一个普通的HTML DOM对象(p, div, body, doucment等)封装成为一个特殊的,增强了JQuery功能的JQuery对象。

说道这里大家可能会知道了JQuery其实相当于一个对象,一个封装了不同HTMLDOM对象的对象。

 

$(string)

         凭空创建一个JQuery包装起来的HTML DOM对象,例如:

         $("<div><p>Hello</p></div>").appendTo("body")

上述代码建立了一个Hello段,Hello段在一个div内部,之后将这个div追加到了doby内部。

 

$( elems )

         讲一个已经存在的HTML DOM对象包装为JQuery对象,例如:

         $(document.body).css( "background", "black" );

         上述代码把body的background设置为black

         $( myForm.elements ).hide()

         隐藏myForm中所有的对象

 

$( function)

$(document).ready(function)的简写,总共有三种方法让一个function在dom初始化完成之后被调用:

         $(document).ready(function)

         $( function)

         JQuery(function)

 

$( expr, context )

在上下文()中查找表达式()所只是的对象,context不存在的情况下在document上下文中查找,例如:

DOM对象:   <p>one</p> <div><p>two</p></div> <p>three</p>

调用:              $("div > p")

结果:              <p>two</p>

 

$("input:radio", document.forms[0])

查找第一个form中的所有redio类型的输入框。

$("div", xml.responseXML)

查找xml.responseXML指示的XML文件内容中所有的div项。

 

扩展JQuery的功能

可以使用$.fn.extend( prop )来扩展JQuery提供的功能,例如,JQuery并没有提供check和uncheck方法,但是我们可以通过如下的代码扩展JQquery,使JQuery增加check和uncheck功能:

jQuery.fn.extend({

   check: function() {

     return this.each(function() { this.checked = true; });

   },

   uncheck: function() {

     return this.each(function() { this.checked = false; });

   }

 });

 

之后我们可以选择一个对象来使用扩展的check和uncheck方法,例如:

 

 $("input[@type=checkbox]").check();

 $("input[@type=radio]").uncheck();

 

解决和其他框架的冲突

$在JQuery中有着特殊的含义,但是有些时候我们的项目已经集成了其他的框架)(例如Prototype),在其他框架中$已经被使用了,那么我们怎么消除JQuery对$指定的特殊含义呢?

我们可以使用jQuery.noConflict()方法,在调用这个方法之后,$已经不在具有我们前面说的JQuery赋予的功能,所以所有的后续代码必须使用JQuery调用,例如:

 

jQuery.noConflict();

        // 调用JQuery的方法

        jQuery("div p").hide();

        // 调用其他框架的$()方法

        $("content").style.display = 'none';

 

我们也可以指定自己喜欢的名字来替换$,例如:

var j = jQuery.noConflict();

// 调用jQuery的方法

j("div p").hide();

// 调用其他框架的 $( ) 方法

$("content").style.display = 'none';

 

其他常用方法

each( fn )

         这对数组中的每一个对象调用fn方法。例如:

         HTML DOM代码:<img/><img/>

         调用方法:              $("img").each(function(i){

                                                     this.src = "test" + i + ".jpg";

});

         结果:                       <img src="test0.jpg"/><img src="test1.jpg"/>

 

eq( pos )

         定位具体的HTML DOM对象

         HTML DOM代码:<p>This is just a test.</p><p>So is this</p>

         调用方法:              $("p").eq(1)

         结果:                        <p>So is this</p>

 

get( pos )

         定位具体的HTML DOM对象(脱掉了JQuery的包装,原始的DOM对象)

         HTML DOM代码:<img src="test1.jpg"/> <img src="test2.jpg"/>

         调用方法:              $("img").get( num )

         结果:                        <img src="test1.jpg"/>

 

get()

         针对所有的对象,脱掉了JQuery的包装,获取原始的DOM对象

         HTML DOM代码:<img src="test1.jpg"/> <img src="test2.jpg"/>

         调用方法:              $("img").get()

         结果:                        <img src="test1.jpg"/><img src="test2.jpg"/>

 

gt( pos )

         取出pos之后的所有对象

         HTML DOM代码:<img src="test1.jpg"/> <img src="test2.jpg"/>

         调用方法:              $("img").gt(0)

         结果:                        <img src="test1.jpg"/>

 

index( subject )

         找到subject在数组中对应的index,不存在时返回-1

         HTML DOM代码:<div id="foobar"><b></b><span id="foo"></span></div>

         调用方法:              $("*").index( $('#foobar')[0] )

         结果:                        0

 

Length

         返回对象数组的长度。

         HTML DOM代码:<img src="test1.jpg"/> <img src="test2.jpg"/>

         调用方法:              $("img").length

         结果:                        2

 

lt( pos )

         与gt相反

         HTML DOM代码:<p>This is just a test.</p><p>So is this</p>

         调用方法:              $("p").lt(1)

         结果:                        <p>This is just a test.</p>

 

size()

         与length相同

 

 

JQuery HTML DOM遍历和选择器

JQuery的功能很强大,可以包装任何一个HTML DOM元素添加强大的功能,那么如何找到需要的元素呢?这就需要JQuery Selector来帮慢,原理上讲,JQuery Selector可以超找到HTML DOM里的任何元素

 

JQuery Selector主要包含三个方面的实现:CSS方式,XPath方式,和JQuery自定义的方式。

为了逐个讲解这些Selector,首先给大家一些基本的例子:

 

隐藏所有包含链接(a)的段(p):

$("p[a]").hide();

 

显示一个页面的第一个段(p):

$("p:eq(0)").show();

 

将所有显示(visible=true)的div隐藏:

$("div:visible").hide();

 

所有无须列表(ul)的项目(li):

$("ul/li")

或者 $("ul > li") */

获得所有class类型为foo,并且包含链接(a)的段:

$("p.foo[a]");

 

获得所有字符内容包含Register的项目(li)

$("li[a:contains('Register')]");

 

得到name=bar的输入项目的值:

$("input[@name=bar]").val();

 

获得所有被选中的button:

$("input[@type=radio][@checked]")

 

CSS方式

JQuery的CSS方式的Selector支持CSS1-CSS3标准。

 

与CSS中的实现完全一致的:

*

         任何的元素

E

         任何类型为E的元素

E:nth-child(n)

         E元素的第n个子元素

E:first-child

         E的第一个子元素

E:last-child

         E的最后一个元素

E:only-child

         E的唯一的子元素

E:empty

         E没有子元素,也不能包含text内容

E:enabled

         E类型的UI元素,并且不是disabled的

E:disabled

         E类型的UI元素,并且是disabled的

E:checked

         E类型的UI元素(radio或者checkbox),并且是checked的

E:selected

         E类型的UI元素(option),并且是选中的(虽然CSS中没有支持,JQuery支持)

E.warning

         Class = warning的元素(dot(.) 表示class)

E#myid

         Id=myid的元素,最多有一个元素被选中。

E:not(s)

         E类型的元素,但是与简单selector  s 不匹配

E F

         E类型的F类型的后代元素

E > F

         E类型的F类型的子元素(F在E之内)

E + F

         F类型紧跟着E类型(F在E之后,并且紧挨着)

E ~ F

         F类型前面连着E类型(F在E之后,不一定紧挨着)

E,F,G

         E,F,G所有类型的元素

 

与CSS中实现稍有不同的:

E[@foo]

         包含属性foo的E类型的元素

E[@foo=bar]

         包含属性foo,并且属性foo的值为bar的E类型的元素

E[@foo^=bar]

         包含属性foo,并且foo的值以bar开始的E类型的元素

E[@foo$=bar]

         包含属性foo,并且foo的值以bar结尾的E类型的元素

E[@foo*=bar]

         包含属性foo,并且foo的值包含bar的E类型的元素

E[@foo=bar][@baz=bop]

         属性foo值为bar,属性baz值为bop的E类型的元素。

 

XPath方式

 

位置路径

    在HTML DOM中查找:

                 $("/html/body//p")

                 $("body//p")

                 $("p/../div")

         在当前上下文中查找:

 $("p/*", this)

                 $("/p//a", this)

 

坐标位置

         子孙节点有一个子孙节点:

 $("//div//p")

         子孙节点有一个子节点:

 $("//div/p")

 

        $("//div ~ form")

$("//div/../p")

 

预言

$("//input[@checked]")

$("//a[@ref='nofollow']")

$("//div[p]")

        $("//div[p/a]")

 

[last()] or [position()=last()] becomes :last

 

        $("p:last")

 

    [0] or [position()=0] becomes :eq(0) or :first

 

$("p:first")

$("p:eq(0)")

 

    [position() < 5] becomes :lt(5)

$("p:lt(5)")

[position() > 2] becomes :gt(2)

$("p:gt(2)")

 

JQuery自定义的Selector

:even

         偶数节点选择

:odd

         奇数节点选择

:eq(n) and :nth(n)

         第n个元素

:gt(N)

         排序比N大的元素

:lt(N)

         排序比N小的元素

:first

与:eq(0)相同

:last

         最后一个元素

:parent

         包含子元素(文本内容也算)的节点

:contains('test')

         包含test文本内容的节点

:visible

         所有显示的元素

:hidden

         所有隐藏的内容

 

例如:

$("p:first").css("fontWeight","bold");

$("div:hidden").show();

$("/div:contains('test')", this).hide();

        

JQueyy 操作HTML属性和CSS

        

JQUery 事件

JQuery 动画效果

JQuery Ajax

JQuery 插件

         JQuery Thickbox plugin

         JQuery Form Plugin

         JQuery Tab Plugin

         JQuery Context Menu Plugin

         JQuery Short Key Plugin

         JQuery Inplace Plugin

 

 
Arduino与震动马达模块握手 震动马达模块采用采用高品质手机震动马达,适用于震动感互动产品的制作,可穿戴智能设备震动提醒,适合作为非可听指示器的小型振动马达。当输入为高电平时电动机会震动,就像你的静音模式的手机一样。 阅读详情

相关推荐

海康线扫相机平场矫正教程

1、白纸准备确保视野中有一张平整且无折痕的白纸,使其完全铺满相机的整个视野。2、行高设置将行高参数设定为 2048。3、灰度值控制相机端图像的灰度值应维持在 120 - 160 这个区间内。同时,最亮像素点与最暗像素点的灰度值差值不得超过 4 倍。在调整灰度值时,尽量开启增益功能。4、 图像模糊处理为减少白纸对平场矫正的影响,需将相机端获取的图像进行模糊化处理。具体操作是对镜头进行虚焦,使整体图像变得模糊。

T 2751

jQuery 基本语法

jQuery,一个 JavaScript 库,极大地简化了 JavaScript 编程,很容易学习。它是一款同prototype、Note.js等一样优秀的js开发库类,特别是对css和XPath的支持,使我们写js变得更加方便!如果你不是个js高手又想写出优秀的js效果,jQuery可以帮你达到目的! 下载地址:jQuery Downloads 简单示例: &lt;html&gt; &lt;h...

系统运维 316

保姆级教程:用R包ggpicrust2搞定PICRUSt2功能预测,从差异分析到热图PCA一键出图

本文提供了一份详细的ggpicrust2使用指南,帮助用户从零开始完成PICRUSt2功能预测数据的差异分析和可视化。通过安装配置、数据导入、差异分析到高级可视化(如热图和PCA)的全流程讲解,即使是初学者也能快速掌握发表级图表的生成技巧。

weixin_33712987的博客 384

jQuery之筛选

jQuery 筛选 1)过滤 2)查找 3)串联 eq(index|-index) 获取匹配的第二个元素 HTML 代码: <p> This is just a test.</p> <p> So is this</p> jQuery 代码: $("p").eq(1).css("color","red") 结果: [ <p> So is ...

weixin_30411997的博客 187

SCAN和JTAG分别是什么?它们之间有什么联系与区别?

SCAN(扫描)技术是集成电路测试领域的一种方法,主要用于边界扫描测试(Boundary Scan)。它是在集成电路设计中引入的一种测试结构,允许测试人员通过在芯片的输入/输出引脚上设置和读取特殊寄存器(边界扫描寄存器,BSR)的内容,来间接测试电路板上的互联和芯片内部功能块。这种方式可以在不接触其他内部节点的情况下测试整个电路板的连接性,极大地提高了测试覆盖率和可诊断性。JTAG(Joint Test Action Group,联合测试行动小组)则是开发并推广边界扫描测试标准的一个组织。

初心不忘产学研的博客 2542

【VisDrone数据集】YOLOX训练VisDrone数据集步骤与结果

YOLOX训练VisDrone数据集步骤与结果。

Gorgeous_wxd 2233

juqery 学习之四 筛选--<过滤>

eq(index) 获取第N个元素 这个元素的位置是从0算起。 Reduce the set of matched elements to a single element. The position of the element in the set of matched elements starts at 0 and goes to length - 1. 返回...

weixin_30389003的博客 215

MAC-H3C官网inode客户端下载安装

MAC-H3C官网inode客户端下载安装

兴趣是最好的老师 1万+

Jquery练习题

1.HTML代码:   onetwothree   jQuery代码:$("div>p");结果 (A)   A.[two]   B.[one]   C.[three]   D.[two] 2.HTML代码:   DIV   SPAN   P   jQuery代码:$("*") 结果(D)   A. [DIV]   B. [SPAN]   C. [P]

郭晓湉 3177

【OAG vs RAG】RAG的“语义崩溃“:为什么你的知识库越大,AI越笨?_语义检索oag-优快云博客

19.9 元(AI 编程 / Agent 实战 | 本文同主题系统课程)·49.9 元(AI 时代成长方法论)。单篇不过瘾?订阅解锁全量源码、实战与答疑;文末附资料包领取方式 ↓图1:RAG语义崩溃概念图。

求知若渴、虚心若愚 73

Tableau学习教程(万字保姆级教程)​​​​​​

​Tableau学习教程(保姆级教材,学不会私信留言来找我) 从BI系统开发的角度来学习tableau工具,更学会报表开发的流程 内含学习使用数据源,tableau打包工作簿,可直接提取使用 ​...

小菜菜的博客 6万+

第十五章 AJAX请求

用下面的页面来展示AJAX请求其中就绑定了一个单机事件下面就是这个页面下面我们先写一个BaseServlet下面再写一个类来继承BaseServlet类进行配置下面三步之后,就可以将请求发送给服务器了如果下面我要访问这个person对象,由于客户端和服务器不在同一台电脑上,我们将person的地址返回给客户端是没有用的,客户端需要的是里面的数据我们要将其转化成person格式的字符串,再将其返回给客户端那么客户端如何接收请求呢下面用alert我们看响应的信息。

m0_72232218的博客 1128

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

JQuery实战教程即将面市

作者 张富银,网名(大漠孤烟),现任源代码教育重庆校区教学总监,拥有多年的开发经验,带领团队完成过多个项目的开发与设计,重庆电信职业学院软件工程教学名师。在技术方面精通PHP、c++、Mysql、Mongodb、hadoop、云计算,热衷于主流LAMP网站解决方案,同时对Li...

chouhequ9493的博客 203

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

JavaScript 从新手到专家(六)

你已经走得很远了!在这个阶段,你应该已经掌握了 JavaScript 的基础知识。你能够创建应用程序、编写巧妙的脚本,并且能够阅读大量的代码。这为接下来的重要步骤打下了坚实的基础。在本章中,我们将通过实践和探索 JavaScript 提供的无限可能性中你感兴趣的部分,将你所学的知识提升到下一个层次。我们不会在这里过多地详细介绍所有这些主题。这些细节很快就会过时,并且互联网上有大量针对每个主题精心制作的教程和信息。可能性很大,在你阅读这段文字的时候,我们推荐的框架和库已经过时了。好消息是,下一个大事件使用相同

龙哥盟 520

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Vue的总结

本文主要介绍了Vue的知识与总结。

weixin_53227089的博客 3081

golang执行多个linux命令,golang执行linux命令

C和指针 第十五章 习题15.8 十六进制倾印码 #include #include #include #include & ...日常资料&lpar;TNB&rpar;http://www.med66.com/html/2005/5/hu47563183418550025733.html http://www.guokr.com/article/192045/ ht...

weixin_36114355的博客 597

最新javase,Java web,Java ee全套视频下载

关注微信公众号:IT老哥,回复Java全套教程,即可领取:Java基础、Java web、JavaEE全部的教程,包括spring boot等 java基础 00.编程入门 01.第一天:Java语言概述 02.第二天:Java基本语法(1) 03.第三天:Java基本语法(2) 04.第四天:Java基本语法(3) 05.第五天:Java基本语法与项目 06.第六天:Eclipse的使用与数组 07.第七天:数组 08.第八天:面向对象(1) 09.第九天:面向对象(2) 10..

hnjsjsac的博客 590

最新Java web视频教程下载

关注微信公众号:IT老哥,回复Java全套教程,即可领取:Java基础、Java web、JavaEE全部的教程,包括spring boot等 Java web 第一章:HTML&CSS 第二章:JavaScript 第三章:jQuery(上) 第四章:jQuery(下) 第五章:XML&Tomcat 第六章:Servlet(上) 第七章:Servlet(下) 第八章:JSP 第九章:EL表达式&JSTL标签库 第十章:项目实战-图书商城 第十一章:项目...

hnjsjsac的博客 499

struts2开发web

[置顶] 使用Struts2开发Java Web应用程序(目录) 分类: Struts2 2007-08-01 22:12 57367人阅读 评论(48) 收藏 举报 strutsjavaweblocalizationjquerydojo 配套源代码网站:https://teamware.dev.java.net   第一部分 Struts入门     第一章 Struts2...

LIXG425的专栏 187

《Pro ASP.NET MVC 3 Framework (Third Edition)》 笔记提纲

《Pro ASP.NET MVC 3  Framework》书籍本身的信息就不多提了(不了解的可以Google一下),内容信息量很大(837页),适合ASP.NET的开发者,特别像我这样的WebForm使用者认真研读。  第一部分:ASP.NET MVC3介绍 对于在微软平台上的Web开发者来说,ASP.NET MVC Framework是一个彻底的改变。框架的重点在于清晰地架构、设计模式、可...

wuyoubf 216
上一篇: 第十四章 集成Dojotoolkit(Ajax框架)
下一篇: 第二十五章 离线并发与锁机制
struts2
博客等级 码龄19年 885粉丝 103原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值