如鹏网学习笔记(十一)JQuery
一、jQuery简介
jQuery是一个JavaScript库,特性丰富,包含若干对象和很多函数,可以替代传统DOM编程的操作方式和操作风格
jQuery通过对DOM API、DOM事件的封装,提供了一套全新的API,更简单和灵活
jQuery宗旨:write less,do more。
jQuery解决了不同浏览器之间的兼容性问题,不用考虑兼容性
示例代码:
<script type="text/javascript" src="引入的jQuery库的地址"></script> //引入要使用的jQuery文件
<script type="text/javascript">
//使用document对象的ready函数
$(document).ready(function(){
$("div").css("backgroundColor","lightgray");//使用div对象的css函数
});
</script>
二、$对象、jQuery对象
和DOM编程的入口是document对象一样,jQuery编程的入口是$对象,它是jQuery的核心对象
$对象也是一个函数对象,可以使用$()的形式调用它,传递给$()不同的参数可以做不同的操作
$函数可以把若干个DOM对象包装进一个对象,这个对象称为jQuery对象
变量命名规则:$对象在变量前面加上$!!!!
$对象:
1,$函数可以直接把DOM对象包装成jQuery对象,或者通过选择器
示例代码:
var divs = document.getElementsByTagName("div");
alert(divs);//打印出的是divs对象
2,DOM对象支持属性操作和方法操作,jQuery对象一般只进行方法操作
3,jQuery对象不能再调用DOM对象的方法,DOM对象也不能调用jQuery对象的方法
jQuery对象:
1,jQuery对象本质上是数组对象,把DOM对象作为数组元素
2,jQuery对象的很多方法具有隐式迭代特性,即方法内部会迭代遍历所有元素,把方法的效果应用到每一个元素上
三、文档加载完成事件
第一种全写形式:
$(document).ready(function(){ });
示例代码:
//第一种写法:
//1,将document对象传递给$()函数
//2,调用$(document)对象的ready()函数,并传入一个事件处理函数function(){}
$(document).ready(function(){
alert("");
});
第二种写法:
示例代码:
//将事件处理函数function(){}直接传递给$()函数,是第一种方式的简写,效果一样
$(function(){
alert("");
});
四、jQuery选择器
1,jQuery的编程思路和DOM一样:
先获得要操作的元素,然后再操作该元素
2,为了方便获取元素,jQuery直接复制了CSS选择器语法。另外除了伪类选择器外大部分和CSS选择器相同
3,jQuery选择器有:
标签选择器、id选择器、类选择器、属性选择器、伪类选择器、复合选择器
4,属性选择器:通过元素的属性进行选择
[元素属性] 选择有该属性的元素
[属性名=属性值] 选择对应属性值的元素
[属性名^=部分属性值] 选择以部分属性名开头的元素
[属性名$=部分属性值] 选择以部分属性名结尾的元素
[属性名*=部分属性名] 选择包含部分属性名的元素
[attr] 选择有attr属性的元素
[attr=val] 选择以attr属性值为val的元素
[attr^=val] 选择以attr属性值以val开头的元素
[attr$=val] 选择以attr属性值以val结尾的元素
[attr*=val] 选择以attr属性值中包含val的元素
5,伪类选择器:与属性选择器配合,筛选其中的元素
:first 第一个元素
:last 最后一个元素
:even 第偶数个元素
:odd 第奇数个元素
重点:
:eq(index) 第index个元素
:gt(index) 第index之后的元素
:lt(index) 第index之前的元素
:not(选择器名称) 对括号里的选择器取反的元素
:first-child 第一个子元素
:last-child 最后一个子元素
:nth-child(n) 第n个子元素
示例代码:
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//标签选择器
$("div").css("backgroundColor","lightgreen");
//id选择器
$("#div02").css("backgroundColor","red");
//类选择器
$(".c03").css("backgroundColor","blue");
//属性选择器
$([id])
});
</script>
语法:
$("选择器名称")
$("选择器名称","")
6,复合选择器:选择器可以进行多种形式的组合
selector1空格selector2 在1选中的元素中,使用2筛选其后代元素(2不要使用伪类选择器)
selector1>selector2 在1选中的元素中,使用2筛选其子元素
selector1~selector2 在1选中的元素中,使用2筛选其后续兄弟元素
selector1+selector2 在1选中的元素中,使用2筛选其后续紧邻的兄弟元素
selector1,selector2 各个选择器的并集
selector1(没有空格)selector2 各个选择器的交集(复合后可识别才可以这样使用)
五、隐式迭代和显式迭代
迭代,可以理解为数组对象的遍历。
隐式迭代就是默认情况下,对数组对象中所有对象遍历后的效果
显式迭代就是jQuery对象的each()方法,按照循环的方式,主动选择其中对象,进行操作
隐式迭代示例代码:
$(document).ready(function(){
//此操作会将所有div全部设置成lightgray,称之为隐式迭代
$("div").css("backgroundColor","lightgray");
});
显式迭代示例代码:
$(document).ready(function(){
$("div").each(function(index,domElement){
//遍历所有元素
alert(index+"+"+domElement);
//选择遍历
if(index ==0){
domElement.style.backgroundColor="lightgray";
}else if(index==1){
domElement.style.backgroundColor="lightblue";
}else if(index==2){
domElement.style.backgroundColor="red";
}else{
domElement.style.backgroundColor="black";
}
});
});
六、jQuery操作元素属性
使用attr()函数来进行操作
三种方式:
1,attr(attrName) 获取第一个元素的该属性的值
2,attr(attrName,value) 设置所有元素的该属性的值(先为所有元素增加该属性,然后赋值)
3,attr(attrName,function(index,value){ }) 设置所有元素该属性的值,值由函数的返回值决定,index表示元素的索引,value表示该元素的原值
示例代码:
<script type="text/javascript" src="jquery-1.8.3.min.js"></script>
<script type="text/javascript">
$(document).ready(function () {
//传入一个参数,获取div元素的id属性的值,但是只能获取第一个,没有发生隐式迭代
var value = $("div").attr("id");
//传入两个参数,设置所有元素的属性的值
$("div").attr("class","xx");
//传入两个参数,第二个参数为一个函数,返回值决定了第二个参数的值
$("div").attr("xxx", function (index,value) {
return "c"+index;
})
});
</script>
attr()函数对HTML元素固有的属性和自定义属性都有效,但是对于类似复选框的checked属性,一级元素的5个只读属性无效
需要使用jQuery对象的prop()函数来操作,但是prop()函数对自定义属性无效
七、jQuery操作元素的CSS样式
操作元素的style属性:
css(propName); 获取当前的样式属性的值
css(propName,value); 给propName属性赋值
css(propName,function(index,value){ }); 给propName属性赋值,函数的返回值决定赋值的值
操作元素的class属性:
addClass(class) 增加class属性的值
removeClass(class) 去除class属性的值
toggleClass(class) 切换class(如果存在就删除,如果不存在就添加)
也可以使用attr()函数来操作style属性和class属性,但是会出现覆盖的情况
八、操作元素的文本内容、子节点、元素值
html() 获取第一个元素的HTML内容(包括子元素和文本内容)
html(string) 设置所有元素的HTML内容 效果等于DOM对象的innerHTML属性
val() 获取第一个元素的value属性的值(如果有value属性的话,没有就是空字符串)
val(string) 设置所有元素的value属性的值
九、操作元素节点
$(html) 创建元素节点
append(content) 插入子节点
before(content) 插入兄弟节点
remove() 删除元素自己
children() 获得元素的子元素
parent() 获得元素的父元素
prevall() 获得元素之前的兄弟元素
nextall() 获得元素之后的兄弟元素
siblings() 获得兄弟元素
十、jQuery事件处理
jQuery提供了一系列如click(),focus(),mouseover()等方法,给元素注册对应事件处理函数
示例代码:
$("div").click(function(){
alert('xx')
});//给所有的div元素的点击事件注册了处理函数
重点:
1,jQuery提供了ready()函数来代替window的load加载事件,ready()可以在文档的DOM结构加载完成后就触发,不必等到页面的图片等资源也加载完成
2,这些函数都可以多次使用。不会发生覆盖
十一、$(this)的使用
因为jQuery的隐式迭代特性,使用jQuery注册的时间处理函数中的this实际上是DOM对象,因此可以调用DOM API,也可以使用$(this)调用jQuery API
示例代码:
$(document).ready(function(){
$("div").click(function(){
alert(this);//这里的this是div对象
});
});
十二、链式编程
更优雅、可以对一个jQuery对象实现一组操作
为了支持链式编程,大部分jQuery方法的返回值还是此jQuery对象本身
如:$("div").mouseout().click();//始终是对div对象进行操作
如果jQuery方法返回的不是原来的对象,就会发生“断链”。这时使用end()方法返回断链之前的状态
如:$("#div01").siblings().html("other").end().html("div01");//接回之前的状态
但是如果返回值不是jQuery对象的方法,就没法接上了
如:$("div").html();//返回值是字符串,不是原来的div对象了
十三、jQuery动画效果
//time的单位是毫秒
hide(time,function(){
$("div").show(time);//在time时间内发生function函数的事件
});
show(time,function) 是元素在指定事件内渐渐展开
如鹏网学习笔记(十一)JQuery的更多相关文章
- 如鹏网学习笔记(十五)ASP.NET MVC核心基础笔记
一.ASP.Net MVC简介 1,什么是ASP.NET MVC? HttpHandler是ASP.net的底层机制,如果直接使用HttpHandler进行开发难度比较大.工作量大.因此提供了ASP. ...
- 如鹏网学习笔记(七)HTML基础
HTML笔记 一.HTML简介 1,HTML (Hyper Text Mark-up Language) 超文本标记语言,是一种编程语言,也可以说是一种标准.规范. 2,HTML提供了一系列标记(标签 ...
- 如鹏网学习笔记(四).Net常用类库
.Net常用类库 一.String成员方法(常用) 1,bool Contains(string str) 判断字符串对象是否包含给定的内容 2,bool StartsWith(String str) ...
- 如鹏网学习笔记(十四)ASP.NET
Asp.net笔记 一.Socket类 进行网络编程的类,可以在两台计算机之间进行网络通讯 过程: 向服务器发送指令: GET /index.html HTTP/1.1 Host:127.0.0.1: ...
- 如鹏网学习笔记(十三)EasyUI
一.EasyUI简介 是一组基于JQuery的UI插件集合 主要作用:为JQuery对象提供新的方法,实现新的功能 可以快速创建出简洁.友好.美观的页面,非常适合做网站后台管理页面(不够漂亮,不适合做 ...
- 如鹏网学习笔记(十)DOM
DOM笔记一.DOM简介 Document Object Model 文档对象模型 DOM的节点树模型:整个文档按照从大到小的节点划分,每一个内容都算作一个节点 DOM API 编程接口 可以用来操作 ...
- 如鹏网学习笔记(九)JavaScript
JavaScript笔记 一.JavaScript简介 1,JavaScript是一种计算机编程语言,可以像等其他编程语言那样定义变量,执行循环等. 2,JavaScript代码主要执行在浏览器上,为 ...
- 如鹏网学习笔记(五)MySql基础
MySQL基础 一.数据库概念 1,网友装备信息.论坛帖子信息.QQ好友关系信息.学籍管理系统中的学生信息等都要“持久化”的保存到一个地方, 如果通过IO写到文件中,那么会非常麻烦,而且不利于多人共享 ...
- 如鹏网学习笔记(十二)HTML5
一.HTML5简介 HTML5是HTML语言第五次修改产生的新的HTML语言版本 改进主要包括: 增加新的HTML标签或者属性.新的CSS样式属性.新的JavaScript API等.同时删除了一些过 ...
随机推荐
- 在Windows子系统(WSL)中配置开机启动服务
在WSL中跑了一些测试服务 比如 mysql nginx等,但关机后每次都要手动开启甚是吃力,本想着用rc.local来编辑开机启动 ,无奈不支持啊!先看看非WSL环境中是怎么实现的. 在 Ubunt ...
- 深入理解Scala的隐式转换
摘要: 通过隐式转换,程序员可以在编写Scala程序时故意漏掉一些信息,让编译器去尝试在编译期间自动推导出这些信息来,这种特性可以极大的减少代码量,忽略那些冗长,过于细节的代码. 使用方式: 1. ...
- Elasticsearch入门CRUD(新增、查询、修改、删除)
1. 项目中引用 Elasticsearch.NET Elasticsearch 其他版本可在: http://www.nuget.org/ 找到对应的项目以源码 ! 本文以 2.4 ...
- [转]CocoaPods安装和使用教程
[转载自:http://code4app.com/article/cocoapods-install-usage] 目录 CocoaPods是什么? 如何下载和安装CocoaPods? 如何使用Coc ...
- CentOS+uwsgi+django+nginx 环境部署及分析
写在部署前 在线上部署django项目时,比较成熟的方案是:nginx + uWSGI + Django. nginx和Django 都比较熟悉了,uWSGI是什么呢?WSGI是一个协议,python ...
- Springboot接口简单实现生成MySQL插入语句
Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...
- 编译原理(一)绪论概念&文法与语言
绪论概念&文法与语言 以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记. 绪论基本概念 1. 低级语言:字位码.机器语言.汇编语言.与特定的机器有关,功效高,但使用复杂.繁琐.费时 ...
- Python unittest第二篇:测试夹具
关于测试夹具,我们知道,以类为对象的话,在python里对应的方法分别是test_isupper.test_upper, 那么以测试case为单位呢? 这时候,就要提到我们的setup()和tearD ...
- python之守护进程
主进程创建子进程,然后将该进程设置成守护自己的进程,守护进程就好比崇祯皇帝身边的老太监,崇祯皇帝已死老太监就跟着殉葬了. 关于守护进程需要强调两点: 其一:守护进程会在主进程代码执行结束后就终止 其二 ...
- 【算法笔记】B1052 卖个萌
题目链接:https://pintia.cn/problem-sets/994805260223102976/problems/994805273883951104 #include <math ...