JavaScript&jQuery
JavaScript
一、什么是JavaScript
JavaScript是一种动态的编程语言。是基于对象和事件驱动的脚本语言,具有安全性可以用来在网页中添加交互功能和动态效果。
JavaScript的特点:
- 语法与java类似
- 边执行边解释
javas的组成:
- ECMAScript js的核心语法 简称es
- DOM 文档对象模型
- BOM 浏览器对象模型
二、JavaScript的使用
-
在标签中使用
<input type="button" onclick="alert('按钮')" />
-
引入JavaScript
<script src=""></script>
-
内嵌式
<script type="text/javascript"> </script>
1.变量
var--全局变量
let--局部变量
const--常量
2.数据类型
- number 数字(整数、小数)
- undefined 未定义类型(变量声明未赋值)
- String 字符串(不区分单个多个)
- Object null表示对象为空
- boolean
3.运算符
* 算术运算符:+、-、*、/
* 一元运算符:++、--
* 赋值运算符:=、+=、-=、*=、/=
* 关系运算符:>、<、>=、<=、!=、==、===
* 三元运算符:条件表达式?true:false
* 逻辑运算符:&&、||、!
* +号转换
4. 系统函数
- parseInt() 转成数字
- parseFloat() 转成小数
- isNaN() 是否是非数字
- 匿名函数 对象.监听=function(){
}
5.常见对象
-
基本对象
//Array--数组 var arr1 = new Array("", ""); var arr2 = ["", ""]; //添加元素 arr1.push(元素); //删除元素 arr2.splice(开始位置,结束位置);
-
DOM对象
//获取当前资源地址 document.URL; //判断非法访问 document.referrer; //获取元素 document.getElementById(唯一); document.getElementsByClassName(数组); document.getElementsByTagName(数组); //获取满足条件的元素 document.querySelector(第一个元素); document.querySelectorAll(全部元素);
-
BOM对象
JavaScript将浏览器的各个组成部分封装为一个个对象,这些对象具有一定的属性和函数,能够对各部分进行操作
-
window 浏览器窗口对象
不需要常见,调函数名直接使用
//对话框 alert(标题); confirm(标题); prompt(标题,值); //定时函数 setTimeout(操作,时间); 延迟执行 setInterval(操作,时间); 间隔执行 //打开窗口 open(); //关闭窗口 colse();
-
history 历史记录对象
//后退 history.back(); //前进 history.forward(); //跳转 history.go();
-
location 地址栏对象
-
screen 屏幕对象
-
navigator 浏览器
-
6.常见事件(监听)
事件 | 说明 |
---|---|
onload | 文档加载完成 |
onclick | 单击 |
onmouseenter | 鼠标移入 |
onmouseout | 鼠标移出 |
onfocus | 获取光标 |
onblur | 失去光标 |
7.属性操作
-
获取属性
style.width
-
获取属性值
getAttribute("需要获取的属性");
-
设置属性值
setAttribute({"需要设置的属性":"需要设置的属性的值",});
-
获取元素
//获取父元素 parentNode //获取子元素 childNodes //获取最后一个元素 lastElementChild //获取第一个元素 firstElementChild //获取下一个元素 nextElementSibling //获取上一个元素 previousElementSibling
8.节点操作
//创建节点
createElement(标签名);
//复制节点(true:复制属性与值;false:只复制标签)
cloneNode();
//插入节点(新节点,老节点)
insertBefore();
//删除节点(只有父元素才能删除)
removeChild();
//替换节点(新节点,老节点)
replaceChild();
//在末尾追加节点
appendChild();
三、JavaScript正则表达式
正则表达式(英语:Regular Expression,在代码中常简写为regex、regexp或RE)使用单个字符串来
描述、匹配一系列符合某个句法规则的字符串搜索模式。
搜索模式可用于文本搜索和文本替换。
语法:
var patt = /runoob/i
/runoob/i 是一个正则表达式。runoob 是一个正则表达式主体 (用于检索)。i 是一个修饰符 (搜索不区分大小写)
jQuery
一、什么是jQuery
jQuery 是一个 JavaScript 库,极大地简化了 JavaScript 编程
工厂函数:
$()作用:获取元素 创建元素 转换对象
js的优先级:
window.onload | $(document).ready() | |
---|---|---|
执行时机 | 整个网页加载完成 | 网页的结构加载完成 |
书写个数 | 有且仅有一个 | N个 |
简写 | 无 | $(function(){}) |
二、jQuery的使用
1.常用函数
-
获取元素
$("选择器名");
-
添加样式
$("").css({"属性":"值",});
-
添加类样式到元素
$().addClass("类名");
-
移除样式
$().removeClass();
-
隐藏元素
$().hide();
-
显示元素
$().show();
-
隐式迭代
无需遍历直接赋值
-
获取父元素
能够获取到根元素
$().parents("需要获取的父元素");
-
获取子元素
$().children("需要获取的子元素");
-
获取后代元素
$().find("需要获取的后代元素");
-
获取同级元素
//所有同级元素 $().siblings("需要获取的同级元素"); //下一个同级元素 $().next(); //后面的同级元素 $().nextAll(); //上一个同级元素 $().prev(); //前面的同级元素 $().prevAll();
-
过滤元素
在一组元素中选出需要的元素
//首个元素 $().first(); //最后一个元素 $().last(); //选择某一个元素 $().eq(元素位置); //获取满足的过滤元素 $().filter("需要获取的元素"); //需要排除元素 $().not("需要排除的元素");
2.选择器
-
元素选择器
$("标签名");
-
id选择器
$("#id名");
-
类选择器
$(".类名");
-
属性选择器
$("p[name=名称]");
-
偶数索引
$("p:even");
-
奇数索引
$("p:odd");
3.常见事件(监听)
事件 | 说明 |
---|---|
ready(function(){}) 或 $(function(){}) | 文档加载完成 |
click() | 单击 |
show() | 显示 |
hide() | 隐藏 |
dblclick() | 双击 |
mouseenter()[仅自身] 或 mouseover() | 鼠标移入 |
mouseleave()[仅自身] 或 mouseout() | 鼠标移出 |
mousedown() | 鼠标按下 |
mouseup() | 鼠标弹起 |
focus() | 获取光标 |
blur() | 失去光标 |
keydown() | 键盘按下 |
keyup() | 键盘弹起 |
keypress() | 键盘按下产生字符 |
键盘提交:
//event称为事件对象:表示当前触发事件的源对象
//keyCode=13:表示键盘的回车
if(event.keyCode == 13){
alert("提交");
}
4.文档或窗口事件:
事件 | 说明 |
---|---|
load() | 文档加载完成 |
scroll() | 用户滚动(滚动某元素时触发) |
resize() | 调整窗口 |
unload | 用户离开窗口 |
事件绑定:
事件 | 写法 | 说明 |
---|---|---|
bind() | $().bind({ click: function() {}, mouseover:function(){}, }); |
绑定多个事件 |
on() | $().on( "click", function() {}, "mouseover",function(){}, ); |
绑定多个事件 |
unbind() | $().unbind("click"); | 解绑多个事件 |
5.复合事件
事件 | 语法 | 说明 |
---|---|---|
toggle() | $().toggle(时间, "缓动函数", "回调函数"); | 显示或隐藏 |
toggleClass() | $().toggleClass("类名"); | 添加样式或移除样式 |
fadeToggle() | $().fadeToggle(时间, "缓动函数", "回调函数"); | 淡入或淡出 |
slideToggle() | $().slideToggle(时间, "缓动函数", "回调函数"); | 滑入或滑出 |
animate() | $().animate({ "需要改变的属性": "需要改变的值", }, 时间); |
动画 |
stop() | $().stop(状态(true / false), 最终位置(true / false)); | 停止 |
hover() | $().hover(); | 移入或移出 |
6.内容操作
-
双标签获取、设置值
$().html("值"); 包含原格式 $().text("值"); 仅文本
-
表单获取、设置值
$().val();
6.节点操作
-
创建节点
注意:创建完成后还需实现插入操作
var $newNode = $("<li>需要插入的内容</li>");
-
插入节点
-
内部插入:
append()追加到末尾
appendTo()通过索引追加到末尾
$().append($newNode); --------------------------- $newNode.appendTo($());
prepend()追加到首部
prependTo()通过索引追加到首部
$().prepend($newNode); --------------------------- $newNode.prependTo($());
-
外部插入
after()、insertAfter()追加到元素外面(后面)
$().after($newNode); ----------------------- $newNode.insertAfter($());
before()、insertBefore()追加到元素外面(前面)
$().before($newNode); ------------------------- $newNode.insertBefore($());
-
-
复制节点
true:仅复制标签
false:包含属性、事件
$().clone(true);
-
删除、清空节点
删除:
$().remove();
清空:
$().empty();
-
替换节点
$().replaceWith($newNode); ----------------------------- $newNode.replaceAll($());
7.属性操作
-
获取属性
$().attr("需要获取的属性");
-
设置属性
$().attr({"需要设置的属性": "需要设置的属性的值"});
-
移除属性
$().removeAttr("需要移除的属性");
-
获取索引
$().index(元素索引);
JavaScript对象与jQuery对象的转换
jQuery本质上也是JavaScript但是jQuery是JavaScript的封装框架,很多原生的方法没有JavaScript多,有的时候我们需要将jQuery转为JavaScript或者是将JavaScript转为jQuery对象来完成方法的调用
JavaScript => jQuery
var $div = document.getElementsByTagName("div");
$($div);
jQuery => JavaScript
var $divEle = $("#div");
$divEle.get(元素索引); 或 var a = $divEle[元素索引];