Jquery学习笔记-程序员宅基地

技术标签: ViewUI  json  数据结构与算法  javascript  



Jquery 学习笔记

jquery简介:

(1)jquery是干什么的呢?

为了简化 JavaScript 的开发一些 JavsScript 库诞生了. JavaScript 库封装了很多预定义的对象和实用函数。能帮助使用者建立有高难度交互的 Web2.0 特性的富客户端页面并且兼容各大浏览器

当前流行的 JavaScript 库有: jQuery, MooTools, Prototype, Dojo, YUI, EXT_JS  DWR

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 documentsevents、实现动画效果,并且方便地为网站提供AJAX交互。

jQuery还有一个比较大的优势是,它的文档说明很全,而且各种应用也说得很详细,同时还有许多成熟的插件可供选择。

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

 

1.jquery对象和dom 对象的转化

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>Insert title here</title>

</head>

<script src="../js/jquery-1.4.2.js"></script>    --引入jQuery-1.4.2.js文件,相当于引入jar

<script type="text/javascript">

window.onload = function()

{

//利用dom技术获取页面上的某一个对象

var domObj = document.getElementById("username");

//dom对象转化成jquery对象   jquery对象是数组对象   如果没有对应的页面的元素,则数组的长度为0

var jquerObj = $(domObj);

//也是jQuery对象,但是数组的长度为0

var jQueryObject1 = $("#usernam");

alert(jQueryObject1);

//jquery对象转化成dom对象

var jQueryObj = $("#username");

jQueryObj.get(0)//jquery对象转化成dom对象

jQueryObj[0] ;//jQuery对象转化成dom对象

}

</script>

<body>

<input type="text" name = "username" id = "username"><input>

</body>

</html>

两种转换方式将一个jQuery对象转换成DOM对象:[index].get(index); 

1.jQuery对象是一个数组对象,可以通过[index]的方法,来得到相应的DOM对象 

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

 

2.选择器

2.1基本选择器

基本选择器基本选择器是jquery中最简单,也是最常用的选择器。它通过元素id,class和标签名来查找DOM元素

  $(#id)  

返回值:单个元素组成的集合

  $(element标签)

返回值:元素集合

  $(.class) 

这个标签是直接选择html代码中class=”myClass”的元素或元素组(因为在同一html页面中class是可以存在多个同样值的).

  $(*) 

匹配所有的元素

  select1,select2

用法: $(”div,span,p.myClass”)    返回值  集合元素

 说明将每一个选择器匹配到的元素合并后一起返回.你可以指定任意多个选择器并将匹配到的元素合并到一个结果内.

2.2层析选择器

层次选择器     如果想通过DOM元素之间的层次关系来获取特定元素。例如子元素、兄弟元素等。则需要通过层次选择器。

$(form input)

返回值  集合元素  说明在给定的祖先元素下匹配所有后代元素.

$(form>input)

说明在给定的父元素下匹配所有子元素.注意:要区分好后代元素与子元素

$(form+input)

说明匹配所有紧接在 prev 元素后的 next 元素

$("form ~ input")

找到所有与表单同辈的 input 

示例:

 

HTML 代码:

<form>  <label>Name:</label>  <input name="name" />  <fieldset>      <label>Newsletter:</label>      <input name="newsletter" /> </fieldset></form><input name="none" />

jQuery 代码:

$("form ~ input")

结果:

[ <input name="none" /> ]

 

 

2.3过滤选择器

过滤选择器主要是通过特定的过滤规则来筛选出所需的 DOM 元素该选择器都以 “:” 开头

按照不同的过滤规则过滤选择器可以分为基本过滤内容过滤可见性过滤属性过滤子元素过滤和表单对象属性过滤选择器.

基本过滤选择器

 

$(tr:first)

匹配找到的第一个元素

$(tr:last)

匹配找到的最后一个元素.与 :first 相对应

$(”input:not(:checked)”

去除所有与给定选择器匹配的元素.有点类似于”非”,意思是没有被选中的input(inputtype=”checkbox”)

$(tr:even)

匹配所有索引值为偶数的元素,从 开始计数.js的数组都是从0开始计数的

$(tr:odd)

说明匹配所有索引值为奇数的元素,:even对应,从 开始计数.

$(”tr:eq(0)”) 

匹配一个给定索引值的元素.eq(0)就是获取第一个tr元素.括号里面的是索引值,不是元素排列数.

$(tr:gt(0))

返回值  集合元素 说明匹配所有大于给定索引值的元素.

$(tr:lt(2)

说明匹配所有小于给定索引值的元素.

$(:header)

说明匹配如 h1, h2, h3之类的标题元素.这个是专门用来获取h1,h2这样的标题元素

内容过滤选择器

内容过滤选择器的过滤规则主要体现在它所包含的子元素和文本内容上

$(”div:contains(’John’)

返回值  集合元素

$(td:empty)  

匹配所有不包含子元素或者文本的空元素

$(”div:has(p)”)

给所有包含p元素的div标签加上class=”test”.

$(”td:parent”) 

说明匹配含有子元素或者文本的元素

可见过滤选择器

根据元素的可见和不可见状态来选择相应的元素

$(”tr:hidden”) 

匹配所有的不可见元素,

$(”tr:visible”)

匹配所有的可见元素.

属性过滤器

属性过滤选择器的过滤规则是通过元素的属性来获取相应的元素

$(”div[id]“) 

匹配包含给定属性的元素

$(input[name=newleter)

匹配给定的属性是某个特定值的元素

$(”input[name!=newleter“)

匹配所有不含有指定的属性,或者属性不等于特定值的元素.

$(”input[name^=‘news’]“) 

匹配给定的属性是以某些值开始的元素

$(”input[name$=‘letter’]“)  

说明匹配给定的属性是以某些值结尾的元素.

$(”input[name*=‘man’“)  

说明匹配给定的属性是以包含某些值的元素.

$(”input[id][name$=‘man’]“)

复合属性选择器,需要同时满足多个条件时使用.又是一个组合,这种情况我们实际使用的时候很常用.这个例子中选择的是所有含有 id 属性,并且它的 name 属性是以 man 结尾的元素.几种组合的交集。

子元素过滤选择器

 

nth-child(index/even/odd/equation) 匹配其父元素下的第N个子或奇偶元素.这个选择器和之前说的基础过滤(Basic Filters)中的 eq() 有些类似,不同的地方就是前者是从0开始,后者是从1开始.

$(”ul li:first-child”) 

匹配第一个子元素.’:first’ 只匹配一个元素,而此选择符将为每个父元素匹配一个子元素.这里需要特别点的记忆区别

$(”ul li:last-child”) 

匹配最后一个子元素.’:last’只匹配一个元素,而此选择符将为每个父 元素匹配一个子元素.

$(”ul li:only-child”) 

说明如果某个元素是父元素中唯一的子元素,那将会被匹配.如果父元素中含有其他元素,那将不会被匹配.意思就是:只有一个子元素的才会被匹配!

表单对象属性过滤选择器

此选择器主要对所选择的表单元素进行过滤

$(”input:enabled”)

匹配所有可用元素.意思是查找所有input中不带有disabled=”disabled”input.不为disabled,当然就为enabled

$(”input:disabled”)    

匹配所有不可用元素.与上面的那个是相对应的

$(”input:checked”)   

匹配所有选中的被选中元素(复选框、单选框等,不包括select中的option).这话说起来有些绕口

$(”select option:selected”)   

匹配所有选中的option元素.

 

2.4.表单选择器

$(”:input”) 

说明:匹配所有 input, textarea, select 和 button 元素 

$(”:text”)

说明匹配所有的单行文本框

$(”:password”) 

匹配所有密码框.

$(”:radio”) ;

说明匹配所有单选按钮

$(”:checkbox”) 

说明匹配所有复选框

$(”:submit”) 

说明匹配所有提交按钮

$(”:image”)

说明匹配所有图像域

$(”:reset”) 

说明匹配所有重置按钮

$(”:button”) ;

说明匹配所有按钮.这个包括直接写的元素button.

$(”input:hidden”) ;

匹配所有不可见元素,或者typehidden的元素.这个选择器就不仅限于表单了,除了匹配input中的hidden,那些stylehidden的也会被匹配.

3.jquery中的dom操作

4.Jqueryajax应用

4.1 load方法

load()方法是 jQuery 中最为简单和常用的 Ajax 方法, 能载入远程的 HTML 代码并插入到 DOM 它的结构是: load(url[, data][,callback])

 

程序员只需要使用 jQuery 选择器为 HTML 片段指定目标位置然后将要加载的文件的 url 做为参数传递给 load() 方法即可

如果只需要加载目标 HTML 页面内的某些元素则可以通过 load() 方法的 URL 参数来达到目的通过 URL 参数指定选择符就可以方便的从加载过来的 HTML 文档中选出所需要的内容

传递方式: load() 方法的传递参数根据参数 data 来自动自定如果没有参数传递采用 GET 方式传递否则采用 POST 方式

对于必须在加载完才能继续的操作, load() 方法提供了回调函数该函数有三个参数代表请求返回内容的 data; 代表请求状态的 textStatus 对象和 XMLHttpRequest 对象

方法的返回值是 jQuery 

4.2 get或者post方法

$.get() 方法使用 GET 方式来进行异步请求它的结构是: $.get(url[, data][, callback][, type]);

 

$.get() 方法的回调函数只有两个参数: data 代表返回的内容可以是 XML 文档, JSON 文件, HTML 片段等; textstatus 代表请求状态其值可能为: succuss, error, notmodify, timeout 4 .

方法的返回值:XMLHttpRequest对象 

$.get()  和 $.post() 方法是 jQuery 中的全局函数而 find() 等方法都是对 jQuery 对象进行操作的方法

5. jquery tree

5.1zTree的简介

1、是jquery树插件的一种,具有特点强大的API,实例和说明,是学习和工作的很好选择。

2、支持JSON数据格式,使得整个开发变得简单化。

3、支持事件响应及反馈。

4、可以让代码方便化和简洁化。

5、支持ajax异步加载的方式,可以不用刷新就能把整个树加载进去。

5.2 zTree组成

5.2.1jquery-1.4.2.js

            jQuery的核心类库

52.2jquery-ztree-2.5.js

           Jquery树插件的核心类库

5.2.3zTreeStyle.css

        zTree插件的样式文件

5.3zTree核心API

5.3.1 zTree(setting, [zTreeNodes])
5.3.1.1说明

这个函数接受一个 JSON 格式的数据对象 setting 和 一个 JSON 格式的数据对象 zTreeNodes,从而建立 Tree

5.3.1.2例子

          

       

 5.3.2核心配置setting

5.3.2.1 treeNodeKey

设置节点唯一标识属性名称,转换数据格式时使用

53.2.2 treeNodeParentKey

设置节点的父节点唯一标识属性名称,转换数据格式时使用

5.3.2.3 showLine

设置 zTree 是否显示节点之间的连线

5.3.2.4 root

       zTree 数据节点的根,全部节点数据都处于 root.nodes 

5.3.2.5 callback

      专门用于用户自定义各种 callback 回调函数

 

5.3.3回调函数
5.3.3.1expand

        当一层节点展开时,所触发的函数。在zTree里,都是通过在setting的设置来执行回调函数的。

 

从如图可以看出,当一个节点进行展开的时候要触发zTreeOnExpand方法。

这个函数有三个参数:

Event              标准的event对象

treeId              对应于树的根节点

treeNode           被展开的节点的JSON数据对象

5.3.3.2 collapse

当一层节点关闭时所触发的函数,从图上可以看出,当一个节点关闭时触发zTreeOnCollapse函数。

这个函数有三个参数:

Event              标准的event对象

treeId              对应于树的根节点

treeNode           被展开的节点的JSON数据对象

4.3.4 addNodes

      1在指定节点下增加子节点

      2、该方法有三个参数

                   1parentNode 指定的父节点,如果增加根节点,请设置 parentNode 为 null 即可

                   2newNodes  需要增加的节点数据 JSON 对象集合,支持将节点的n级子节点一次性增加,只需要符合zTree的节点数据结构即可

                   3isSilent      设定增加节点后是否展开其父节点。isSilent = true 时,不展开父节点,其他值或缺省状态都自动展开

    3、由树节点的引用调用该方法

            

 

 

 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/thankyou/p/4352109.html

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_30528371/article/details/95485391

智能推荐

js-选项卡原理_选项卡js原理-程序员宅基地

文章浏览阅读90次。【代码】js-选项卡原理。_选项卡js原理

设计模式-原型模式(Prototype)-程序员宅基地

文章浏览阅读67次。原型模式是一种对象创建型模式,它采用复制原型对象的方法来创建对象的实例。它创建的实例,具有与原型一样的数据结构和值分为深度克隆和浅度克隆。浅度克隆:克隆对象的值类型(基本数据类型),克隆引用类型的地址;深度克隆:克隆对象的值类型,引用类型的对象也复制一份副本。UML图:具体代码:浅度复制:import java.util.List;/*..._prototype 设计模式

个性化政府云的探索-程序员宅基地

文章浏览阅读59次。入选国内首批云计算服务创新发展试点城市的北京、上海、深圳、杭州和无锡起到了很好的示范作用,不仅促进了当地产业的升级换代,而且为国内其他城市发展云计算产业提供了很好的借鉴。据了解,目前国内至少有20个城市确定将云计算作为重点发展的产业。这势必会形成新一轮的云计算基础设施建设的**。由于云计算基础设施建设具有投资规模大,运维成本高,投资回收周期长,地域辐射性强等诸多特点,各地在建...

STM32问题集之BOOT0和BOOT1的作用_stm32boot0和boot1作用-程序员宅基地

文章浏览阅读9.4k次,点赞2次,收藏20次。一、功能及目的 在每个STM32的芯片上都有两个管脚BOOT0和BOOT1,这两个管脚在芯片复位时的电平状态决定了芯片复位后从哪个区域开始执行程序。BOOT1=x BOOT0=0 // 从用户闪存启动,这是正常的工作模式。BOOT1=0 BOOT0=1 // 从系统存储器启动,这种模式启动的程序_stm32boot0和boot1作用

C语言函数递归调用-程序员宅基地

文章浏览阅读3.4k次,点赞2次,收藏22次。C语言函数递归调用_c语言函数递归调用

明日方舟抽卡模拟器wiki_明日方舟bilibili服-明日方舟bilibili服下载-程序员宅基地

文章浏览阅读410次。明日方舟bilibili服是一款天灾驾到战斗热血的创新二次元废土风塔防手游,精妙的二次元纸片人设计,为宅友们源源不断更新超多的纸片人老婆老公们,玩家将扮演废土正义一方“罗德岛”中的指挥官,与你身边的感染者们并肩作战。与同类塔防手游与众不同的几点,首先你可以在这抽卡轻松获得稀有,同时也可以在战斗体系和敌军走位机制看到不同。明日方舟bilibili服设定:1、起因不明并四处肆虐的天灾,席卷过的土地上出..._明日方舟抽卡模拟器

随便推点

Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all-程序员宅基地

文章浏览阅读437次。Maven上传Jar到私服报错:ReasonPhrase: Repository version policy: SNAPSHOT does not allow version: xxx_repository version policy snapshot does not all

斐波那契数列、素数、质数和猴子吃桃问题_斐波那契日-程序员宅基地

文章浏览阅读1.2k次。斐波那契数列(Fibonacci Sequence)是由如下形式的一系列数字组成的:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, …上述数字序列中反映出来的规律,就是下一个数字是该数字前面两个紧邻数字的和,具体如下所示:示例:比如上述斐波那契数列中的最后两个数,可以推导出34后面的数为21+34=55下面是一个更长一些的斐波那契数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584,_斐波那契日

PHP必会面试题_//该层循环用来控制每轮 冒出一个数 需要比较的次数-程序员宅基地

文章浏览阅读363次。PHP必会面试题1. 基础篇1. 用 PHP 打印出前一天的时间格式是 2017-12-28 22:21:21? //&gt;&gt;1.当前时间减去一天的时间,然后再格式化echo date('Y-m-d H:i:s',time()-3600*24);//&gt;&gt;2.使用strtotime,可以将任何字符串时间转换成时间戳,仅针对英文echo date('Y-m-d H:i:s',str..._//该层循环用来控制每轮 冒出一个数 需要比较的次数

windows用mingw(g++)编译opencv,opencv_contrib,并install安装_opencv mingw contrib-程序员宅基地

文章浏览阅读1.3k次,点赞26次,收藏26次。windows下用mingw编译opencv貌似不支持cuda,选cuda会报错,我无法解决,所以没选cuda,下面两种编译方式支持。打开cmake gui程序,在下面两个框中分别输入opencv的源文件和编译目录,build-mingw为你创建的目录,可自定义命名。1、如果已经安装Qt,则Qt自带mingw编译器,从Qt安装目录找到编译器所在目录即可。1、如果已经安装Qt,则Qt自带cmake,从Qt安装目录找到cmake所在目录即可。2、若未安装Qt,则安装Mingw即可,参考我的另外一篇文章。_opencv mingw contrib

5个高质量简历模板网站,免费、免费、免费_hoso模板官网-程序员宅基地

文章浏览阅读10w+次,点赞42次,收藏309次。今天给大家推荐5个好用且免费的简历模板网站,简洁美观,非常值得收藏!1、菜鸟图库https://www.sucai999.com/search/word/0_242_0.html?v=NTYxMjky网站主要以设计类素材为主,办公类素材也很多,简历模板大部个偏简约风,各种版式都有,而且经常会更新。最重要的是全部都能免费下载。2、个人简历网https://www.gerenjianli.com/moban/这是一个专门提供简历模板的网站,里面有超多模板个类,找起来非常方便,风格也很多样,无须注册就能免费下载,_hoso模板官网

通过 TikTok 联盟提高销售额的 6 个步骤_tiktok联盟-程序员宅基地

文章浏览阅读142次。你听说过吗?该计划可让您以推广您的产品并在成功销售时支付佣金。它提供了新的营销渠道,使您的产品呈现在更广泛的受众面前并提高品牌知名度。此外,TikTok Shop联盟可以是一种经济高效的产品或服务营销方式。您只需在有人购买时付费,因此不存在在无效广告上浪费金钱的风险。这些诱人的好处是否足以让您想要开始您的TikTok Shop联盟活动?如果是这样,本指南适合您。_tiktok联盟