jQuery介绍

jQuery是一个Javascript库,里面提供了很多快速方便操作DOM的函数(方法)。学习jQuery的本质就是学习调用这些函数(方法)。

jQuery的入口函数

DOM结构渲染完毕即执行内部代码,而不必等到所有外部资源加载完成。相当于原生js中的DOMContentLoaded。不同于原生js中的load事件是等页面文档、外部的js文件、css文件、图片加载完毕才执行内部代码。

// 方法一
$(function() {... // 此处是页面DOM加载完成的入口})
// 方法二
$(document).ready(function() {... // 此处是页面DOM加载完成后的入口});

jQuery的顶级对象$

$是 jQuery的别称,在代码中可以使用$代替 jQuery;同时它也是jQuery的顶级对象,相当于原生JavaScript中的window,把元素利用$包装成 jQuery对象,就可以调用 jQuery的方法。

jQuery对象和DOM对象

用原生js获取来的对象就是DOM对象;jQuery方法获取的元素就是jQuery对象。jQuery对象的本质是:利用$对DOM对象包装后产生的对象(伪数组形式存储)。

1. DOM对象转换为jQuery对象:$(DOM对象)$('div')
2. jQuery对象转换为DOM对象方法一:$('div')[index] index为索引号方法二:$('div').get(index) index为索引号

jQuery常用API

隐式迭代:遍历内部DOM元素,并以伪数组形式存储,简化操作,方便调用。

jQuery筛选选择器

语法 用法 描述
:first $('li:first') 获取第一个 li 元素
:last $('li:last') 获取最后一个 li 元素
:eq(index) $('li:eq(2)') 获取到的 li 元素中,选择索引号为2的元素,索引号 index 从0开始
:odd $('li:odd') 获取到的 li 元素中,选择索引号为奇数的元素
:even $('li:even') 获取到的 li 元素中,选择索引号为偶数的元素

jQuery筛选方法

语法 用法 说明
parent $('li').parent() 查找父级
children(selector) $('ul').children("li") 相当于$("ul>li"),查找最近一级的子级
find(selector) $('ul'.find("li")) 相当于$("ul li"),后代选择器
siblings(selector) $('ul'.find("li")) 查找兄弟节点,不包括自己本身
nextAll([expr]) $(".first").nextAll() 查找当前元素之后所有的同辈元素
prevtAll([expr]) $(".last").prevAll() 查找当前元素之前所有的同辈元素
hasClass(class) $('div').hasClass("protected") 检查当前元素是否含有某个特定的类,如果有,则返回 true
eq(index) $("li").eq(2) 相当于$("li:eq(2)",index)从0开始

** jQuery排他思想**:当前元素设置样式,其余兄弟清除样式,实现多选一的效果。

$(function() {// 1. 隐式迭代 给所有按钮都绑定了点击事件$("button").click(function() {// 2. 当前的元素变化背景颜色$(this).css("background", "pink");// 3. 其余的兄弟去掉背景颜色 隐式迭代$(this).siblings("button").css("background", "");});
})

jQuery链式编程:节省代码量,更简洁优雅
上述代码可以用以下这一行来代替

$(this).css("color", "red").sliblings().css("color", "");

jQuery样式操作

(1)操作css的方法
jQuery可以使用css方法来修改简单元素样式;也可以操作类,修改多个样式。

  1. 参数只写属性名,则是返回属性值
$(this).css("color");
  1. 参数是属性名,属性值,逗号分隔,是设置一组样式,属性必须加引号,值如果是数字可以不用跟单位和引号。
$(this).css("color", "red");
  1. 参数可以是对象形式,方便设置多组样式。属性名和属性值用冒号隔开,属性可以不用加引号。
$(this).css({"color":"white", "font-size":"20px"});

(2)操作类的方法
设置类样式方法,可以批量设置css样式,注意操作类里面的参数不要加点。

  1. 添加类
$("div").addClass("current");
  1. 移除类
$("div").removeClass("current");
  1. 切换类
$("div").toggleClass("current");

:类操作与className的区别
原生JS中className会覆盖元素原有的类名,jQuery的类操作知识对指定类进行操作,不影响原有的类名。

jQuery效果

  • 显示隐藏效果
// 显示语法规范
show([speed,[easing],[fn]])<button>显示</button>
<div></div><script>
$(function() {$("button").eq(0).click(function() {$("div").show(1000, function() {alert(1);})}))
})
</script>

显示参数:参数都可以省略,实现无动画直接显示
speed:三种预定速度之一的字符串(“show”, “normal”, “fast”)或表示动画时长的毫秒数值(如:1000)
easing:(Optional)用来指定切换效果,默认是"swing",可用参数"linear"
fn:回调函数,在动画完成时执行,每个元素执行一次

  • 滑动效果
// 鼠标经过
$(".nav>li").monseover(function() {$(this).children("ul").slideDown(200);
}))
// 鼠标离开
$(".nav>li").monseout(function() {$(this).children("ul").slideUp(200);
}))
  • 事件切换
// 事件切换 hover 就是鼠标经过和离开的复合写法
$(".nav>li").hover(fun1(经过的函数),fun2(离开的函数));// 如果只写一个函数。那么经过和离开均会触发这个函数
$(".nav>li").hover(function() {$(this).children("ul").slideToggle();
})
  • 动画队列及其停止排队方法
    动画或者效果一旦触发就会被执行,如果多次触发,就会造成多个动画或者效果排队执行。
 $(this).children("ul").stop().slideToggle();

: stop()方法用于停止动画或效果,应该始终被写在动画或者效果的前面,相当于结束上一次的动画。

  • 淡入淡出
// 淡入
$("div").fadeIn(1000);
// 淡出
$("div").fadeOut(1000);
// 切换
$("div").fadeToggle(1000);// 修改透明度:必须传两个参数速度和透明度
【语法】 fadeTo([[speed],opacity,[easing],[fn]])
$("div").fadeTo(1000,0.5);
  • 自定义动画化animate
【语法】 animate(params, [speed], [easing], [fn])

参数说明
params:必需,想要更改的样式属性,以对象形式传递。属性名可以不带引号,如果是符合属性则需要采取驼峰命名法,其余参数均可省略。

$(function() {$("button").click(function() {$("div").animate({left:500,top:300,opacity:.4,width:500}, 500);})
})

jQuery属性操作

  • 设置或获取元素固有属性值 prop()

所谓元素固有属性就是元素本身自带的属性,比如<a>元素里面的href<input>元素里的type

** 【获取属性语法】 prop("属性")
** 【设置属性语法】 prop("属性", "属性值")$("a").prop("title", "修改后的title名");
  • 设置或获取元素自定义属性值 attr()

用户自己给元素添加的属性,我们称为自定义属性。比如给<div>添加index = "1"。此方法也可用于获取H5自定义属性。

** 【获取属性语法】 attr("属性") // 类似原生 getAttribute()
** 【设置属性语法】 attr("属性", "属性值") // 类似原生 setAttribute()$("div").attr("index", 4);
  • 数据缓存 data()

data()方法可以在指定的元素上存取数据,并不会修改DOM元素结构。一旦页面刷新,之前存放的数据都将被移除。同时,还可以读取H5自定义属性,得到的是数字型。

** 【获取数据语法】 attr("name") // 向被选元素获取数据
** 【附加数据语法】 attr("name", "value") //  向被选元素附加数据// 这个里面的数据是存放在元素的内存里面
$("span").data("uname", "andy");// 使用此方法获取data-index h5自定义属性,不用写 “data-”,而且返回的是数字型
$("div").data("index");

jQuery内容文本值

主要针对元素的内容还有表单的值的操作

  • 普通元素内容html()

相当于原生innerHTML

** 【获取元素内容】 html()
** 【设置元素内容】 html("内容") $("div").html();
$("div").html("<h1>123</h1>");
  • 普通元素文本内容text()

相当于原生innerTEXT

** 【获取元素的文本内容】 text()
** 【设置元素地文本内容】 text("文本内容") $("div").text();
$("div").text("123");
  • 获取表单值val()
$("input").val();
$("input").val("123");

jQuery元素操作

主要是遍历、创建、添加、删除元素操作。

  • 遍历元素

jQuery隐式迭代是对同一类元素做了同样的操作,如果想要给同一类元素做不同操作,就需要用到遍历。

【语法1】 $("div").each(function(index, domEle) { xxx; })
  1. each()方法遍历匹配的每一个元素,主要用于DOM对象处理;
  2. index 是每个元素的索引号,domEle是每个DOM元素对象,而不是jQuery对象;
  3. 要想使用jQuery方法,需要使用$(domEle)将其转换为jQuery对象。
-----------案例:修改单个元素颜色 + 求和<body>
<div>1</div>
<div>2</div>
<div>3</div>
<script>$(function() {var arr = ["red", "green", "blue"];$("div").each(function(index, domEle) {// 修改颜色(注意转换,dom对象没有css方法)$(domEle).css("color", arr[i]);// 求和sum += parseInt($(domEle).text());})console.log(sum);})
</script>
</body>
【语法2】 $.each(object,function(index, element) { xxx; })
  1. $.each() 方法可用于遍历任何对象,主要用于数据处理,比如数组、对象;
  2. 里面的函数有两个参数:index是每个元素的索引号,element是遍历内容。
// 1. 遍历元素
$each($("div"), function(i, ele) {console.log(i);console.log(ele);
});// 2. 遍历数组
$each(arr, function(i, ele) {console.log(i);console.log(ele);
});// 3. 遍历对象
$each({name: "andy",age: 18}, function(i, ele) {console.log(i); // 输出的是 name age 属性名console.log(ele); // 输出的是 andy 18 属性值
})
  • 创建、添加、删除元素

创建元素

【语法】 $("<li></li>");

添加元素——内部添加
把元素放入匹配元素内部最后面,类似于原生appendChild

【语法】 element.append("内容");

添加元素——外部添加

【语法】 element.after("内容"); // 把内容放入目标元素后面element.before("内容"); // 把内容放入目标元素前面

: 内部添加元素生成之后,他们是父子关系;外部添加元素之后,他们是兄弟关系。

删除元素

【语法】 element.remove() // 删除匹配的元素(本身)element.empty() // 删除匹配的元素集合中所有的子节点element.html("") // 清空匹配的元素内容
 ---------------------综合案例$(function() {// 1. 创建元素var li = $("<li>后来创建的元素</li>")// 2, 添加元素// (1)内部添加$("ul").append(li);   // 内部添加并且放到内容的最后面$("ul").prepend(li);  // 内部添加并且放到内容的最前面// (2)外部添加var div = $("<div>后来添加的元素</div>");$(".test").after(div);$(".test").before(div);// 3, 删除元素$("ul").remove(); // 删除匹配元素本身$("ul").empty(); // 删除匹配元素里面的子节点$("ul").html(""); // 删除匹配元素里面的子节点
})

jQuery尺寸、位置操作

语法 用法
width() / height() 取得匹配元素宽度和高度值 只算 width/height
innerWidth() / innerHeight() 取得匹配元素宽度和高度值 包含padding
outerWidth() / outerHeight() 取得匹配元素宽度和高度值 包含padding、border
outerWidth(true) / outerHeight(true) 取得匹配元素宽度和高度值 包含padding、border 、margin

注: 以上参数为空,则是获取响应值,返回的是数字型;如果参数为数字,则是修改相应值;参数可以不必写单位。

Javascript基础知识部分

字面量和变量

字面量是一些不可改变的值,是可以被直接使用的,但是我们一般都不会直接使用字面量。
变量可以用来保存字面量,是可以任意改变的,在开发中都是通过变量去保存一个字面量。

标识符

在js中所有的可以由我们自主命名的都可以称之为标识符,变量名、函数名、属性名都属于标识符。
命名一个标识符时需要遵守如下的规则:

  1. 标识符中可以含有字母、数字、_、$;
  2. 标识符不能以数字开头
  3. 标识符不能是ES中的关键字或保留字;
  4. 标识符一般都采用驼峰命名法

注:js底层保存标识符时实际上采用的是Unicode编码,所以理论上所有的utf-8中含有的内容都可以作为标识符。

jQuery+Javascript基础知识汇总相关推荐

  1. JavaScript基础知识汇总

    一.原型/原型链/构造函数/实例/继承 js万物皆对象,用  var a={} 或   var a = new Object() 或者用构造函数的形式:  var a = new A() 创建一个对象 ...

  2. JavaScript学习总结(7)——JavaScript基础知识汇总

    转载于:https://www.cnblogs.com/zhanghaiyang/p/7212784.html

  3. python基础知识资料-学习Python列表的基础知识汇总

    千里之行,始于足下.要练成一双洞悉一切的眼睛,还是得先把基本功扎扎实实地学好.今天,本喵带大家仔细温习一下Python的列表.温故而知新,不亦说乎. 当然,温习的同时也要发散思考,因为有些看似无关紧要 ...

  4. javaweb(02) JavaScript基础知识

    javaweb(02): JavaScript基础知识 JavaScript简介 为什么出现JavaScript Javascript是什么 JavaScript和Java的关系? 就像卡巴斯基和巴基 ...

  5. Javascript基础知识之四(常用数组方法)

    一.MDN链接 Array - JavaScript | MDNJavaScript的 Array 对象是用于构造数组的全局对象,数组是类似于列表的高阶对象.https://developer.moz ...

  6. JavaScript基础知识与脚本语言总结

    1 Aptana插件安装 1.Aptana插件安装 <1>Aptana是一个非常强大,开源,JavaScript-focused的AJAX开发IDE. <2>它的特点包括: J ...

  7. JavaScript 基础知识

    JavaScript 基础知识 文章目录 JavaScript 基础知识 @[toc] 一.JS的基本语法与结构 1.1 JavaScript 用法 1.2 JavaScript 输出 1.3 Jav ...

  8. 【JavaScript详解】一文掌握JavaScript基础知识(上)

    JavaScript基础 前言 一.什么是JavaScript 1.JavaScript概述 2.javaScript有什么作用 二.JavaScript快速入门 1.引入JavaScript 2.基 ...

  9. Javascript 基础知识学习

    Javascript 基础知识学习 参考自:https://www.w3cschool.cn/javascript/ javascript 简介 JavaScript 是互联网上最流行的脚本语言,这门 ...

最新文章

  1. FFmpeg通过摄像头实现对视频流进行解码并显示测试代码(新接口)
  2. 如何更有效WEB应用防火墙确保信息安全
  3. 一个程序猿如何自学双截棍,避免各种编程职业病的发生?
  4. oracle 表达式1000,oracle环境下占用编号的方法报语法错误:ORA-01795: 列表中的最大表达式数为 1000...
  5. python语言是由谁设计并领导开发的_python语言概述 - osc_lt3ocv4d的个人空间 - OSCHINA - 中文开源技术交流社区...
  6. rabbitmq充分利mysql_牛逼哄哄的 RabbitMQ 到底有啥用?
  7. 叉积 微分 恒等式_4分钟带你认识向量的极化恒等式。
  8. Flex通过Java读取Excel(详细流程)----Excel在客户端(DataGrid动态根据Excel生成)
  9. 这些文章可以使知识融会贯通
  10. 墨卡托投影、高斯-克吕格投影、UTM投影及我国分带方法
  11. MySQL数据库定期自动备份(定时任务)
  12. Python_2018-11-27_机器视觉——百度人脸识别
  13. html 指针图表,HTML5 canvas 指针时钟
  14. android 9.0user版本如何开启root,打开su
  15. 机器学习在地球物理(地震)中的发展历程_1
  16. 去除Multiple markers at this line - advised by提示
  17. 单片机开发用到的intrins.h文件
  18. 【视频课】行为识别课程更新!CNN+LSTM理论与实践!
  19. 用luasocket读取双色球中奖号码
  20. 夏季咽喉肿痛,上火原因和治疗途径

热门文章

  1. 微信朋友圈python广告演员_微信自己在朋友圈投了个广告,原来幕后团队是他们!...
  2. c语言定义不定长数组初始化_数组的定义,初始化和使用,C语言数组详解
  3. 怎么计算两个经纬度之间的距离
  4. Java实现发送邮件功能
  5. 一款强大的芯片nRF52840及利用蓝牙5.0实现数据远程采集
  6. python中如何定义数组_python中数组是如何使用的?
  7. 3-5 linux 网络文件系统
  8. 成大K系列斜齿锥齿轮减速机的常发故障及处理
  9. 成就好生意·成为好企业丨828 B2B企业节,永洪科技来了
  10. ubundu pip时报错:Could not get lock /var/lib/dpkg/lock