华清远见-重庆中心-HTML/CSS/JS/JQUERY技术总结

本文详细总结了HTML、CSS、JavaScript和jQuery的基础知识与应用技巧,涵盖了常用的HTML标签、CSS样式、JavaScript语法以及jQuery的选择器、事件和动画效果,旨在帮助读者全面了解网页开发的核心技术。
摘要由CSDN通过智能技术生成

HTML是一门超文本标记语言

超文本:超级文本/超链接文本,超越了文本的限制,入多媒体文件、超链接等。

标记:也称为标签,用<>括起来的特点单词,整体称为标记或标签,分为但标签和双标签。

常用标签

文本标签

常用标签作用
<h1></h1>....<h6></h6>块级元素,双标签。标题,文字加粗
<p></p>块级元素,双标签。段落
<span></span>行内元素,双标签。拼接内容
<pre></pre>块级元素,双标签。预处理标签
<i></i>行内元素,双标签。斜体
<u></u>行内元素,双标签。添加下划线
<b></b>行内元素,双标签。字体加粗
<sub></sub>行内元素,双标签。文字下标
<sup></sup>行内元素,双标签。文字上标

图片img

单标签,行内元素

<img src="图片路径" alt="图片无法正常显示时显示的文字" 
    title="鼠标悬停时提示的文字" width="图片宽度" height="图片高度">

列表

无序列表ul/li

双标签,块级元素 ,默认每一项之前以实心圆符号修饰。

通过type属性可以修改符号:

属性符号
disc默认实心圆
circle空心圆
square正方形
none取消修饰符
<ul style="square">
    <li>选项一</li>
    <li>选项二</li>
    <li>选项三</li>
</ul>

有序列表ol/li

块级元素,双标签,默认以自增数字修饰

通过type属性修改修饰符:

修饰符作用
a/A英文字母
i/I罗马符号
1默认数字
none取消修饰符
<ol>
    <li>选项一</li>
    <li>选项二</li>
    <li>选项三</li>
</ol>

表格table

表格中的标签作用
<tr>
<th>特殊的单元格,表头,文字加粗居中
<td>

跨行跨列

跨行:rowspan="跨行数";

跨列:colspan="跨列数";

多媒体

音频:audio

<audio controls auoplay loop muted>
    <source src="音频路径" type="audio/mpeg">
</audio>

视频:video

<video width="320" height="200" controls autoplay loop muted>
	<source src="视频路径" type="video/mp4">
</video>
属性作用
autoplay默认播放
loop循环播放
muted静音播放
controls开启控制器

a标签

行内元素,双标签。

超链接

可以通过a标签访问任何一个地址。

<a href="网址或资源路径" target="">跳转</a>

target的作用:能够控制访问的资源在哪里打开

属性作用
_self默认当前页面打开
_blank在新页面打开
_parent在父页面打开
指定name名如果是锚点,通过"#name"访问;如果是iframe,通过"name"访问

锚点

通过a标签能够实现当前页面的快速定位。

设置锚点

<a name="锚点名"></a>

访问锚点

<a href="#指定的锚点名">点击访问锚点</a>

浮动框架:iframe

语法

<iframe src="页面的路径" width="宽度" height="高度">
    
</iframe>

例题

<body>
    <h1>iframe浮动框架</h1>
	<a href="http://taobao.com" target="main">跳转淘宝</a>
	<a target="ifm1" href="index.html">在iframe1中显示</a>
	<a target="ifm2" href="index.html">在iframe2中显示</a>
	<hr>
	<iframe name="main" src="列表与表格.html" width="100%" height="500px"></iframe>
	iframe1:<iframe name="ifm1" width="35%"></iframe>
	iframe2:<iframe name="ifm2"width="35%"></iframe>
</body>

滚动:marquee

<marquee scrollamount="10" direction="right" behavior="alternate">
    <img src="图片路径">
</marquee>
属性
directionleft/right/up/down:滚动朝向
behaviorscroll:默认重复        slide:移动到底停止        alternate:往复
scrollamount移动速度

表单和表单元素

表单form

双标签,用于接收用户输入的数据

<form action="提交表单的最终目的路径" method="提交方法(post/get)">
    
</form>

get提交的数据会暴露在浏览器地址栏中,post提交的数据不会暴露在浏览器地址中,提交更为安全。

表单元素:定义在form标签中的标签

表单元素作用
input单标签,行内元素。修改关键属性type,变化为不同的组件
select双标签,行内元素。下拉菜单
textarea双标签,行内元素。文本域
button双标签,行内元素。按钮

input标签的type值

type值作用
text文本框
password密码框
radio单选按钮
checkbox复选框
date日历组件
number数字组件
hidden隐藏域
submit提交按钮
reset重置按钮
file上传文件
image图片提交按钮

表单元素中的属性

属性作用
name用于提交数据时设置提交的参数名
value用于设置组件的默认值
checked用于单选按钮和复选按钮的默认选中
required用于设置输入框为必填项
selected用于设置下拉菜单默认选中
disabled用于设置某个组件为不可用状态
readonly用于设置某个组件为只读状态
max/min/stepnumber独有,用于设置最大值、最小值和步长
rows/colstextarea独有,用于设置行数和宽度

div标签

块级元素,双标签

CSS

css时层叠样式表,控制HTML中标签样式的语言,可以精确到像素,用于美化HTML标签

语法:样式名:样式值;

color:red;
font-sizq:24px;

选择器

选择器作用
id选择器

1.给标签添加id属性并命名

2.在style标签中通过"#id"名获取

通常用于选择某一个元素

class选择器

1.给标签添加class属性并命名

2.在style标签中通过".class"名获取

通常用于选择某一组元素

元素/HTML/标签选择器

直接通过标签名获取

通常用于选择一组数据

层次选择器

通过空格或>获取某个元素的子元素

元素A 元素B:获取元素A下所有元素B

元素A>元素B:获取元素A下的第一层元素B

群组选择器通过","同时选择多个元素

优先级

行内样式-->id选择器-->class选择器->标签选择器

写在标签中的style属性-->写在style标签中的属性-->引入css文件

CSS书写位置

1.写在标签中的style属性

<body style="background-color:red">
    //设置背景颜色为红色
</body>

2.写在style标签中

<html>
    <head>
        <style>
            选择器{
                样式:值;
                样式:值;
            }
            /*获取页面中所有名为div的元素*/
            div{
                
            }
            /*获取页面中class为test的元素*/
            .test{
                
            }
            /*获取页面中id为test的元素/
            #test{
            
            }
        </style>
    </head>
</html>

3.创建一个独立的.css文件

        a.创建.css文件,将原本写在style标签中的内容写入.css文件

        b.在页面的head标签中,通过link关键字引入

<link rel="stylesheet" href=".css文件地址"/>

常用样式

尺寸

只能对块级元素设置尺寸,行内元素需要先设置为块级元素,再设置尺寸

样式名作用
width设置块级元素的宽度px像素或者百分比或vm
height设置块级元素的高度px像素或者百分比或vh

 背景background

样式名作用
background-color背景色颜色的单词、十进制RGB、十六进制RGB
background-image背景图url(图片的地址路径)
background-repeat背景平铺默认为重复;no-repeat:不平铺;repeat-x:水平平铺;repeat-y:垂直平铺
background-size背景尺寸默认加载原图;100%表示完整显示图片;cover表示覆盖所在元素;
background-position背景位置可以同时设置x轴和y轴的距离,通过使用right left top bottom center设置指定方向
background-attachment背景固定方式fixed表示固定背景,scroll或默认表示跟随滚动条移动
background背景属性的简写可以同时设置图片路径、是否重复和图片位置,无关顺序。

边框border

样式作用
border-style边框线型

solid:单线

double:双线

dotted:点线

dashed:虚线

border-width边框宽度像素
border-color边框颜色 颜色对应单词、十进制RGB、十六进制RGB
border同时设置边框线型、宽度、颜色border:1px solid red;
border-方向-样式某个方向的style或width或color。方向可以是left、right、top、bottomborder-bottom-color:red
border-方向同时设置指定方向边框线型、宽度和颜色border-right:1px solid red;
border-上下左右-radius设置一个角为圆角border- top-left-radius:100px ;左上角为圆弧 border- bottom- right-radius: 100px;右下角为圆弧 border-top-right-radius: 100px;右上角为圆弧 border-bottom-left-radius: 100px;左下角为圆弧
border-radius同时设置四个角为圆角,如果为正方形,值为边长一半便为圆形border-radius: 100px;
outline轮廓。input文本框获得焦点时,会自动显示一个轮廓,通过将该属性设置为none去除轮廓outline: none;
border-collapse合并相邻边框。通常用于表格设置边框时,将其值改为collapse,表示合并相邻td边框。(一般写在table标签)collapse

字体font

样式作用
font-size字体大小像素。默认为16px,最小为12px
font-family字体类型默认为微软雅黑
font-weight字体粗细bolder(粗)、lighter(细)或者数字

文本text

样式名作用
color文本颜色颜色的三种方法
line-height行高(行间距)像素,一般比字体大。值与容器高度一致时会垂直居中
text-align文本水平对齐方式默认left左对齐, right右对齐, center居中
letter-spacing字符间距默认为0px
text-indent文本首行缩进默认值为32px,首行缩进2个字
text-decoration文本修饰under-line下划线,over-line上划线,line-through删除线。通常将a标签设置该样式
text-shadow文本阴影颜色 水平位置 垂直位置模糊程度。如text-shadow:4px 4px 4px #FAEBD7;向右下角移动4px,模糊3px
word-break英文换行方式默认以单词为单位换行,不会拆分单词。break-all表示以字母为单位换行,会拆分单词。

列表list

样式名作用
list-style-type列表符号通常用none去掉
list-style-image使用图片替换列表符号url(图片路径)
list-style-position调整列表符号的位置默认outside表示符号和文本分离。inside表示符号和文本绑定。

伪类link/hover/active/visited

表示某个元素的某种状态,用来对某些元素在不同情况下呈现不同的效果

a标签伪类作用
a:link为访问时
a:hover鼠标悬停
a:active鼠标按住
a:visited访问后

鼠标样式cursor

效果
pointer鼠标为一只手
move鼠标为移动符号
auto默认为箭头
progress载入
crosshair光标呈现为十字线
text光标为文本
wait此光标指示程序正忙(通常是一只表或沙漏)。
help此光标指示可用的帮助(通常是一个问号或一个气球)。

显示方式display

效果
block将元素设置为块级元素,能设置尺寸,独占一行
inline将元素设置为行内元素,不能设置尺寸,占一行的一部分,尺寸由内容决定
inline-block将元素设置为行内块,能设置尺寸,占一行的一部分
none不显示、不保留自身的位置,后续的元素会顶替其位置

浮动float

让某个元素脱离原本的位置朝某个方向对齐

作用
left左浮动
right右浮动
none清除浮动

float:left和display:inline-block的区别

相同点:都能让多个块级元素显示在同一行

不同点:

display:inline-block多个元素最终会位于同一行内,保留改行位置,元素以下线对齐,保留元素间的缝隙,后续的元素是新的一行。

float:left多个元素向指定方向贴合,不保留改行位置,元素以上线对齐,不保留元素间的缝隙,后续的元素会顶替之前元素的位置

盒子模型

页面中的块级元素都是盒子,盒子由元素自身、内边距、外边距、边框组成。

从外到里:外边距margin,边框border,内边距padding,元素自身

内边距:边框与元素自身之间的距离

外边距:元素A的边框与元素B的边框之间的距离

盒子模型相关样式作用
padding内边距。一个参数设置四个方向;两个参数表示上下、左右;三个参数表示上、左右、下;四个参数表示上、右、下、左;
padding-方向某个方向的内边距,方向可以是left、right、top、bottom
margin外边距。如果某个值设置为auto表示自动将所在容器剩余距离除以2|
margin-方向某个方向的外边距,方向可以是left、right、top、bottom

溢出overflow

子元素超出父元素的范围时称为溢出。

作用
hidden隐藏溢出部分
scroll使用滚动条
visiable默认显示

盒子模型的阴影:box-shadom

语法:box-shadom:颜色 左右位置 上下位置 模糊度

box-shadom:gray 4px 5px 6px;

定位position

作用
relative相对定位
fixed固定定位
absolute绝对定位

配合定位使用样式

定位相关方向样式作用
left元素距离页面左边界的左右距离正值向右,负值向左
right元素距离页面右边界的左右距离正值向左,负值向右
top元素距离页面左边界的上下距离正值向下,负值向上
bottom元素距离页面右边界的上下距离正值向上,负值向下

相对定位relative

让某个元素,相对于原本的位置进行定位,定位原点为元素本身的位置。

元素不会脱离文档流(后续元素不会顶替其位置),会保留元素原本的位置。

固定定位fixed

让某个元素脱离文档流,默认根据页面的四个边界进行定位。

通常用于放置- -些工具、广告、返回首页等。

绝对定位absolute

让某个元素脱离文档流,根据已定位的父元素进行定位。如果父元素没有定位,会根据页面定位。

层叠z-index

某个已经定位的元素可以通过z-index控制其层叠顺序。

z-index是一个数字,数字越大,距离视线越近。

不透明度

取值范围[0,1),值越大,越不透明

opacity:

独立的样式。修改某个元素的不透明度

opacity:0.5;

rgba()

background-color的值的一种写法:修改背景的不透明度

background-color :rgba(255,0,0,0.5);

转换transform

改变某个元素的状态,如旋转、移动、缩放等

作用
rotate(45deg)顺时针旋转45度
translate(10px,20px)向右平移10px,向下平移20px
translateX(10px)/translateY(10px)向右/向下平移10px
rotateX(30deg)/rotateY(30deg)/rotateZ(30deg)沿着X/Y/Z轴3D旋转
rotate3d(1,1,0,30deg)沿着X和Y轴3D旋转30度(0表示不旋转,1表示旋转)
scale(1.5)放大1.5倍

以上的效果可以同时设置:transform:效果1 效果2 ....

transform:rotate(30deg) scale(1.5) trans1ate(10px, 20px);

过渡transition

设置某个转换效果完成所需的时间

相关样式作用
transition-duration:3s过渡时间(所需时间)
transition-delay:2s延时生效
transition-timing-function:linear时间函数
transition:5s 2s ease2s后执行,所需5s, 慢-快-慢

动画animation

animation相关样式作用
animation-name:动画名执行指定动画
animation-duration:3s动画执行时间
animation-delay:3s动画延时时间
animation-iteration-count:3动画执行次数,infinite表示无限
animation-timing-function:linear动画执行时间函数,linear表示匀速
animation:动画名5s 2s简写。只写一个时间表示用时写两个时间表示第一个是用时, 第二个是延时

1.定义动画的关键帧

@keyframes myanimate{
    0%{
		//该阶段的样式
		样式名:值
	}
	25%{}
    50%{}
	75%{}
	100{}
}

2.给某元素设置animation样式

#xxx{
	/*执行动画的名称*/
	animation-name: myanimate;
	/*执行动画所需要的时间*/
	animation-duration: 3s;
	/*执行动画的次数   infinite表示无限*/
	animation-iteration-count: infinite;
	/*动画延时*/
	animation-delay:2s ;
	/*执行动画的速度   linear匀速*/
	animation-timing-function: linear;
	
	/*简写  只写一个时间表示用时,两个时间表示第一个用时,第二个延时*/
	animation:动画名 3s 2s infinite linear;
}

滤镜filter

滤镜函数作用
grayacale(100%)灰度
blur(5px)模糊
brightness(150%)亮度
contrast(150%)对比度
hue-rotate(180deg)色调旋转
invert(100%)反转颜色
opacity(50%)不透明度
saturate(2)饱和度
sepia(80%)灰褐色

JavaScript简称JS

JS是一门面向对象、轻量级、弱类型的解释型脚本语言。

HTML、CSS、JS的作用

HTML:定义页面中的内容

CSS:控制HTML元素的外观和样式

JS:操作HTML元素

JS书写位置

1.可以写在某个标签的某个事件中

2.写在一个<script>标签中,<script>通常放在head标签或者body标签结束前

3.写在一个独立的.js文件中,通过script标签导入

<script src="js文件路径"></script>

JS的输出语句

1.弹警告窗alert

alert(字符串或者变量)
<!--通过提示框输出    alert(输出内容)-->
<button onclick="alert('hello js')">点击</button>

2.控制台输出console.log()

<!--通过控制台输出   console.log(输出内容)-->
<button onclick="console.log('hello js!')">点击2</button>

3.打印在新页面中document.write()

<!--通过新页面输出   document.write(输出内容)-->
<button onclick="document.write('hello js!!!')">点击3</button>

JS由ECMAScript(核心语法)、浏览器对象模型(BOM)、文档对象模型(DOM)组成

ECMAScript(核心语法)

原始数据类型

JS中的原始类型说明
数值型number整数、小数都称为数值型
字符串String用单引号、双引号引起来的内容都是字符串
布尔型booleantrue/false
空null某个引用类型变量通过null设置为空
未定义undefined当某个变量没有声明或没有值时

引用数据类型

包括:对象、数组、、函数等

定义变量:var/let

var/let 变量名;
var name;
var age;
let sex;

命名规则

1.由字母、数字、下划线、$符号组成

2.不能使用数字开头

3.不能使用js中的关键字

变量初始化

var name="张三";
var age;
age = 20;
console.log(name+"-----"+age);

JS中的本地对象

JS中的数组Array

可以保存把不同类型的数据,同时数组的长度大小可变。

定义数组

//java定义
数据类型[] 数组名 = new 数据类型[];
//JS定义
var 数组名 = new Array();
var 数组名 = [];

数组的使用

var list = new Array();
list[0]=123;
list[1]="hello";
list[2]=true;

数组遍历

//length属性可以获取数组长度
//循环所有下标,没有赋值元素的输出underfined
for(var i =0;i<list.length;i++){
    console.log(list[i]);
}
//增强for循环,获取保存了数据的下表
for(var index in list){
    //通过下标获取元素
    console.log(list[index]);
}

数组初始化

var 数组名 = new Array(元素1,元素2,元素3....);
var 数组名 = [元素1,元素2,元素3....];

常用方法

方法名作用返回值
sort()将数组中的元素进行升序排序排序后的数组
reverse()将数组中的元素倒序保存倒叙后的数组
pop()移除数组中的最后一个元素被移除的元素
push(元素)添加元素到数组末尾最新的数组长度
shift()移除数组中的第一个元素被移除的元素
unshift(元素)添加元素到数组开头最新的数组长度
fill(元素)使用指定元素填充数组填充后的数组
splice(index)从指定索引开始分割数组,方法调用后,数组为剩余元素的数组截取到的元素集合
splice(index,length)从指定索引开始切分指定长度个元素,方法调用后,数组为剩余元素的数组截取到的元素集合
以上方法在调用后,都会影响原数组
方法名作用返回值
indexOf(元素)得到某个元素第一次出现的索引索引
lastIndexOf(元素)得到某个元素最后一次出现的索引索引
concat(元素)将指定元素添加到原数组的末尾添加后的数组
join(字符)使用指定字符将所有元素串联成一个字符串拼接后的字符串
slice(start,end)截取指定[start,end)区间内的元素截取后的数组
slice(index)截取从index开始到末尾的元素截取后的数组
Map(方法名)将数组中的元素都执行指定方法执行方法后的新数组
以上方法在调用后不会影响原数组

日期Date

创建Date对象

var now = new Date;

常用方法

<script>
    /*本地对象
			new Array();
			new Date();*/
    //获取当前日期时间
    var now = new Date();
document.write(now+"<br>");
document.write("年:"+now.getFullYear()+"<br>");
document.write("月:"+now.getMonth()+"<br>");
document.write("日:"+now.getDate()+"<br>");
//一周中的第几天,0-6表示周天到周六
document.write("星期:"+now.getDay()+"<br>");
document.write("时:"+now.getHours()+"<br>");
document.write("分:"+now.getMinutes()+"<br>");
document.write("秒:"+now.getSeconds()+"<br>");
//获取从1970年/1/1起经过的毫秒数
document.write("毫秒:"+now.getTime()+"<br>");

//以上方法都有对应的set方法用于设置指定值

//获取日期时间宇符串
document . write(now. toString()+"<br>");
//获取日期部分字符串
document.write(now.toDateString()+"<br>")
//获取时间部分字符串
document.write(now.toTimeString()+"<br>")

//以当前环境输出日期时间字符串
document.write(now.toDateString()+"<br>")
//以当前环境输出日期字符串
document.write(now.toLocaleDateString()+"<br>")
//以当前环境输出时间字符串
document.write(now.toLocaleDateString()+"<br>")

</script>

字符串

在JS中字符串就是一个字符数组,字符串对象有length属性,获取字符串的长度

常用方法

var str = "adfs'FFFF'fsdfs";
document.write(str+"<br>");
//将字符串转换成小写,返回新的字符串
var lower =str.toLowerCase();
document.write(lower+"<br>");
//字符串转换成大写,返回新的字符串
var upper = str.toUpperCase();
document.write(upper);

var blank ="       123465         ";
console.log(blank.length)
//去掉字符串前后的空格,返回新的字符串
var newBlank = blank.trim();
console.log(newBlank.length);
console.log(newBlank);


blank = "    1  2  3    ";
//去掉字符串的左边空格
var left = blank.trimLeft();
console.log(left);
//去掉字符串右边的空格
console.log(blank.trimRight());

var str2 = "abcd12,34x,yz";
//返回指定下标的字符
console.log(str2.charAt(4));

for(var i=0;i<str2.length;i++){
    console.log(str2.charAt(i));
}
//返回指定字符(字符串)在字符串中第一次出现的下标,从0开始
var index = str2.indexOf(",");
console.log(index);
//返回指定字符(字符串)在字符串中最后一次出现的下标,从0开始
var last =str2.lastIndexOf(",");
console.log(last);

//截取用逗号分割的两个电话的号码
var phone = "13023459814,15824986065";
//substring()截取指定位置开始(包含),到指定位置结束(不包含)的子字符串
var phone1 = phone.substring(0,phone.indexOf(","));
var phone2 = phone.substring(phone.indexOf(",")+1,phone.length);
console.log(phone1);
console.log(phone2);

//substr()截取从指定位置开始(包含),指定长度的子字符串
//长度超过了字符串的长度,不会报错,截取到字符串的结束
phone2 = phone.substr(phone.indexOf(",")+1,11);
console.log(phone2);

//按指定字符(字符串)拆分字符串为数组
var list = phone.split(",");
console.log(list[0]);
console.log(list[1]);

var chars = "abcedfeg";
//用空字符串拆分,实际就是按照字符拆分
var list1 = chars.split("");
for(var index in list1){
    console.log(list1[index]);
}

//拼接字符串
var stra = "xxx";
var strb = "您好";
console.log(stra+strb);
console.log(stra.concat(strb));


//替换字符串
var str3 = "as df ghjkl";
//用新字符(字符串)替换原字符中第一个字符串
//console.log(str3.replace(" ",""));
console.log(str3.replaceAll(" ",""));

Math

floor()向下取整
ceil()向上取整
round()四舍五入
abs()绝对值
random()随机数[0,1)

[m,n]的随机整数:Math.floor(Math.random() *(n-m+ 1))+ m

[m,n)的随机整数:Math.floor(Math.random()* (n-m))+ m

常用案例

<script>
    //向下取整(返回整数部分)
    console.log(Math.floor(3.14));//3
	//向上取整 (小数部分大于0,返回整数部分+1)
	console.log(Math.ceil(3.14));//4
	//四舍五入
	console.log(Math.round(3.14));//3
	//绝对值
	console.log(Math.abs(-10));//10
	//开平方
	console.log(Math.sqrt(4));//2
	//开立方
	console.log(Math.cbrt(8));//2
	//幂运算
	console.log(Math.pow(3,2));//9
	//随机数
	console.log(Math.random());//0-1的随机数
	//[0,10)的随机整数
	console.log(Math.floor(Math.random()*10));
	//5-10(包含)的随机整数
	//m到n(包含)的随机数:Math.floor(Math.arandom()*(n-m+1))+m;
	console.log(Math.floor(Math.random()*6)+5); 
	//5-10(不包含)的随机整数
	//m到n(不包含)的随机数:Math.floor(Math.arandom()*(n-m))+m;
	console.log(Math.floor(Math.random()*5)+5); 
</script>

函数function

一段代码能够完成特定的功能,可以被重复使用

自定义函数

function 函数名(参数1,参数2.....){
    //代码
    return 返回值;//函数不需要返回值,省略return语句
}

函数调用:对象.函数名(参数);

<script>
	//js代码执行时有一个预处理过程,函数在预处理时候就能识别,函数调用可以放在任意位置(不要求函数的调用一定要在函数定义之后)
    function fun1(){
    	console.log("fun1被调用")
	}
	fun1();//函数调用 

	//有参数没有返回值
	function fun2(name) {
   	 console.log("您好,"+name)
	}
	//调用
	fun2("张三");//js函数可以传参数,也可以不传参数,不会报错。

	//有参有返回值
	function fun3(a,b){
   		return a+b;
	}
	var sum = fun3(10,20);
	console.log(sum);
</script>

JS默认全局函数

函数作用
parseInt()转换成整数类型
parenFloat()转换成小数类型
idNaN(元素)元素是否为小数,元素是小数返回false
Number()用Number对象转小数
eval()把字符串中能执行的内容当语句执行

例:

<script>
	//js自带的全局函数
	//字符串转整数
	console.log(parseInt("85"));//转换成整数类型   85 
	console.log(parseInt("abc"));//返回结果为NaN(not a number)
	//数字开头的字符串能够把前面的数字转为整数,后面部分的字符会自动丢弃。
	console.log(parseInt("99abc"));//输出99
			
	//字符串转小数
	console.log(parseFloat("3.14"));///3.14
	console.log(parseFloat("a.14"));//NaN
	console.log(parseFloat("3.14xyz"));//3.14
	//截取小数的位数
	console.log(parseFloat("3.1415926").toFixed(2));//3.14   
			
	//用Number对象转小数
	var num1= new Number("123");
	console.log(num1);
			
	//true 说明字符不是数字,转换失败
	console.log(isNaN(parseFloat("a.14")));
			
	//eval()  把字符串中能执行的内容当语句执行
	console.log(eval("3+2"));
			
</script>

匿名函数

通常用于设置某个标签的某个事件

标签.事件=function(){
    
}

BOM(可以通过JS获取浏览器信息和控制浏览器)

弹窗

1.警告窗,带有提示文字和确认按钮

alert(提示文字);

2.输入框,带有输入框和确认取消按钮,点击确认,返回值为输入的内容

prompt(提示文字);

3.确认框,带有确认取消按钮,点击确认返回true,否则返回false

confirm(提示文字);

window对象

浏览器窗口对象,可以获取浏览器信息,调用浏览器的某些行为

常用属性和行为作用
window.innerWidth获取当前浏览器窗口可视区域宽度
window.innerHeight获取当前浏览器窗口可视区域高度
window.screen获取当前页面screen对象,保存了屏幕相关信息
window.location获取当前页面location对象,保存浏览器地址栏相关信息
window.history获取当前页面history对象,保存了历史记录相关信息
window.alert()警告框
window.prompt()输入框
window.confirm()确认框
var wid=window.open()弹出新窗口,返回值为弹出的窗口对象
wid.close() window.close()关闭窗口。如果通过open)方法的返回值调用,关闭打开的新窗口;如果通过window调用,关闭当前窗口
var myTimeout=window.setTimeout(函数,毫秒)设置延时生效,在指定毫秒后执行一次指定函数,通常是一个匿名函数
window.clearTimeout()取消指定的延时生效
var myInterval = window.setInterval(函数,毫秒)设置重复生效,在指定的毫秒后重复执行指定函数,通常是一个匿名函数
window.clearInterval()取消指定的重复生效

screen对象:用户获取屏幕相关信息

属性作用
window.screen.width获取当前屏幕设置的宽度
window.screen.height获取当前屏幕设置的高度
window.screen.availWidth获取当前屏幕除任务栏之外的宽度
window.screen.avallHeight获取当前屏幕除任务栏之外的高度

location对象:设置或获取地址栏相关信息

属性作用
window.location.href获取或设置当前浏览器地址,能回退
window.location.assign("地址")设置当前浏览器地址,能回退
window.location.replace("地址")设置当前浏览器地址,不能回退
window.location.reload()重新加载当前页面

history对象

属性作用
[window.]history.back()/g0(-1)回退
[window.]history.forward()/go(1)前进

DOM:文档对象模型

获取节点

获取节点的方式作用
document.getElementById("某个标签的id名")根据id获取页面中唯一的节点,返回获取的节点对象
document.getElementsByClassName("某些标签的class名")根据class名获取页面中对应的所有节点,返回获取的节点数组
document.getElementsByTagName("标签名")根据标签名获取页面中对应的所有节点,返回获取的节点数组
document.getElementsByName("某个标签的name属性值")根据标签的name属性值获取对应的所有节点,返回获取的节点数组

获取/设置节点的文本

innerText:读取或设置某个节点的内容(双标签中的内容),无论设置什么内容都会原样显示

innerHTML:读取或设置某个节点的内容(双标签中的内容),设置的内容中如果有html元素会识别HTML元素

//innerText用于设置或读取标签中的文本,不会识别HTML元素
document.getElementById("mp1").innerText="<h1>李白</h1>";
//inner HTML用于设置或读取标签中的文本,会识别HTML元素
document.getElementById("mp2").innerHTML="<h1>李白</h1>";

效果图:

获取/设置节点属性

常用属性作用
节点.src获取或设置资源路径,如img的src
节点.value获取或设置节点的value属性,如表单元素的value
节点.checked获取或设置单选按钮和复选框的选中状态
节点.className获取或设置标签的class属性值
节点.href获取或设置标签的href属性值,如a标签的href

修改节点样式

修改单个样式:节点.style.样式名="值";

修改多个样式:节点.style.cssText="样式名:值;样式名:值 ";

创建添加删除节点

创建节点

document.creatElement("标签名");
document.createElement("div");

添加子节点

//父节点.appendChild(子节点);
var md = document.createElement("div");
document.body.appendChild(md);

删除子节点

//父节点.removeChild(子节点);
var md = document.getElementById("md");
document.body.removeChild(md);

事件

节点添加事件

<script>
  	节点.事件=function(){
        //触发事件时执行的内容
    }
</script>

常用事件

常用事件作用
onclick鼠标单击
ondblclick鼠标双击
onfocus文本框获取焦点
onblur文本框失去焦点
onmouseenter/onmouseover鼠标移入
onmouseout/onmouseleave鼠标移出
onmousemove鼠标移动
onmousewheel鼠标滚轮滚动
onmousedown/onmouseeup鼠标按下/松开
onsubmit表单提交
onchange改变

event对象

在某个函数中传入一个参数,通常为e或event,就可以监听对应的事件。

节点.事件=function(event){
    
}
event对象常用属性和方法作用
event.clientX获取当前鼠标的水平位置
event.clientY获取当前鼠标的垂直位置
event.preventDefault()阻止默认事件
event.stopPropagation()阻止事件冒泡

事件冒泡:

默认在子节点触发事件时,父节点也会触发事件,这种情况称为事件冒泡。

通过event.stopPropagation();阻止事件发生。

表单相关事件

表单提交

不要使用提交按钮的单击事件,要使用表单的onsubmit事件

获取表单

//使用常用的id/class/标签名/name属性,通过document.getElementXXX方式获取
//还可以使用document.forms获取当前页面中表单的数据
document.forms[0].onsubmit = function(){
    
}

阻止表单提交

//在表单的提交事件中,使用return false阻止表单的提交

输入框

输入框包括:文本框text、密码框password、文本域textarea

获取输入框中输入的内容

//var 变量 = 节点.value;
var username = document.getElementsByName("username")[0].value;

设置输入框内容

//节点.value =值;
document.getElementsByName("username")[0].value = "xx';

单选按钮

判断是否选中

//节点.checked结果为true表示选中

获取单选按钮对应的值

如在获取选择的性别时,可以设置性别变量值为男,默认选中男,再判断选项女是否被选中,如果被选中,更改性别变量的值为女。

复选框

判断是否选中

//节点.checked结果为true表示选中

全选

点击全选时,将所有的复选框的选中状态设置为全选按钮的选中状态

反选

点击反选时,将所有的复选框的选中状态设置为它自身相反的选中状态

获取复选框的值

复选框和单选按钮一致,需要自己设置value

通常定义一个数组保存最终选择的各个选项的value值。

通过遍历所有复选框,判断其状态,如果被选中,将其value添加到数组中。

下拉菜单

获取选中的值

下拉菜单可以通过option的value属性获取选中的值,如果没有设置value属性,获取的是option标签中的文本。

如果有value属性,获取实际的value值。

动态添加选项

可以使用document.createElement("option")方式创建option后,使用appendChild方法添加到selet中。

建议使用new Option(value)方式创建一个Option后,使用select节点.add(option节点)方式添加到select中

综合案例:

<!DOCTYPE html>
<html>
	<head>
		<meta charset="UTF-8">
		<title></title>
	</head>

	<body>
        
		<form>
			用户名:<input type="text" name="username" /><br> 性别:
			<input type="radio" name="sex" checked="checked" />男<input type="radio" name="sex" />女<br> 爱好:
			<input type="checkbox" name="hobby" value="游泳" />游泳
			<input type="checkbox" name="hobby" value="旅游" />旅游
			<input type="checkbox" name="hobby" value="阅读" />阅读<br>
			<input type="checkbox" id="all" />全选
			<input type="checkbox" id="reverse" />反选
			<br> 职业:
			<select name="job">
				<option>医生</option>
				<option>教师</option>
				<option>学生</option>
				<option>工人</option>
			</select>
			<input type="text" id="optValue" /><button type="button">添加选项</button>
			<br>
			<input type="submit" value="注册" id="sbm" />
		</form>

		<script>
			//全选按钮事件
			//获取所有的爱好复选框
			var hobbyList = document.getElementsByName("hobby");
			document.getElementById("all").onchange = function() {
				//给所有的爱好复选框设置状态
				for(var i = 0; i < hobbyList.length; i++) {
					//选中状态同全选按钮状态一致
					hobbyList[i].checked = this.checked;
				}
			}
			//反选按钮事件
			document.getElementById("reverse").onchange = function() {

				//给所有的爱好复选框设置状态
				for(var i = 0; i < hobbyList.length; i++) {
					//选中状态同全选按钮状态一致
					hobbyList[i].checked = !hobbyList[i].checked;
				}
			}

			//添加选项
			document.getElementsByTagName("button")[0].onclick = function() {
				var optValue = document.getElementById("optValue").value;
				if(optValue.length == 0) {
					alert("必须输入选项内容");
					return;
				}
				//创建一个option
				var opt = new Option(optValue);
				//设置value属性
				opt.value=optValue;
				//将option添加到select中
				document.getElementsByName("job")[0].add(opt);
				return false;
			}

			//表单提交
			document.forms[0].onsubmit = function() {
				//获取文本框的值
				var username = document.getElementsByName("username")[0].value;
				//获取单选按钮的值
				var sex = document.getElementsByName("sex")[1].checked ? "女" : "男";

				//复选框事件
				var hobbyies = []; //最终的爱好数组
				//遍历爱好选项
				for(var i = 0; i < hobbyList.length; i++) {
					//判断是否选中
					if(hobbyList[i].checked) {
						//将选中的选项的value添加到数组中
						hobbyies.push(hobbyList[i].value);
					}
				}

				//下拉框
				var job = document.getElementsByName("job")[0].value;
				alert("用户名:" + username + "\n性别:" + sex + "\n爱好:" + hobbyies + "\n职业:" + job);

				return false;
			}
            
		</script>
        
	</body>

</html>

jQuery

jQuery是一个轻量级的JavaScript函数库,封装了很多JS中的内容。

使用

在页面中导入jquery.js文件

<script src="jQuery.js文件路径"></script>

页面中加入另一个script标签,写入jquery代码

<script src="jQuery.js文件路径"></script>
<script>
	//文档就绪函数
    jQuery(document).ready(function(){
        //jQuery代码
    });
    //简化版文档就绪函数
    $(function(){
        //jQuery代码
    });
</script>

jQuery对象和JS对象

1.在js中,使用document.getElementXXX获取到的是dom对象。

2.dom对象只能使用如.style、.innerText等属性修改样式或内容,不能使用jQuery对象中的属性或函数。

3.在jQuery中,使用jQuery选择器获取到的是jQuery对象。

4.jQuery对象只能使用jQuery中的属性或函数,不能使用dom对象中的属性或函数。

5.通常在jQuery对象命名时,使用$符号作为前缀,方便区分jQuery对象和dom对象。

jQuery对象转换为dom对象

  • jquery对象[0]
  • jquery对象.get(0)

dom对象转换为jQuery对象

  • $(dom对象)
<html>

    <body>
        <h1 id="test"></h1>
    </body>

    <script src="jQuery.js"></script>
    <script>
        $(function(){
            //通过js的方式获取的对象,称为dom对象,只能使用dom对象操作节点的属性和方法
            var test= document.getElementById("test");
            test.innerText="修改文本";
            //通过jQuery的选择器获取的对象,称为jQuery对象,只能使用jQuery对象操作节点的属性和方法
            //$("#test").innerText="xxx"//无效
            $("#test").text("修改文本");

            //将jQuery对象转换为dom对象
            $("#test")[0].innerText="修改文本";
			//将dom对象转换为jQuery对象
            $(test).text("修改文本");
        });
    </script>
</html>

$符号冲突

jQuery提供了一个noConflict()函数用于释放对$的使用权。

//直接调用该方法,释放对$的使用权,之后只能使用默认的"jQuery"
$.noConflict();
//$("#md")//这时会无效
jQuery("#md")//只能这样使用

//调用该方法,使用变量接收,释放对$的使用权,用指定的变量名代替$
var jq=$.noConflict();
jq("#md")//将jq当做$使用

jQuery中的选择器

基本选择器

基本选择器作用
$("#id名")id选择器,根据id名获取某个节点
$(".class名")class选择器,根据class名获取某些节点
$("标签名")元素选择器,根据标签名获取某些节点
$("#id名,.class名,标签名")群组选择器,根据指定的选择器获取所有满足的节点
$("a.test")获取class名为test的a标签
$("a#test")获取id名为test的a标签
$("*")获取所有节点

层次选择器

层次选择器作用
$("#test *")得到id为test节点中的所有子节点。
$("#test div")得到id为test节点中的所有div子节点。
$("#test>*")得到id为test节点中的第一层所有子节点。
$("#test>.test")得到id为test节点中的第一层class为test的子节点
$("#test+p")得到id为test节点后紧邻的第一个p节点
$("#test~p")得到id为test节点后同级的p节点

注意

$("p .test")表示得到p标签下的class为test的所有标签。有空格

$("p.test")表示得到class为test的p标签。无空格

过滤选择器

普通过滤:$("选择器:特定单词")

普通过滤作用
$("tr:odd")奇数索引。得到索引为1,3,5...的tr标签,按自然顺序为偶数
$("tr:even")偶数索引。得到索引为0,2,4...的tr标签,按自然顺序为奇数
$("tr:first")得到所有tr标签中的第一个
$("tr:last")得到所有tr标签中的最后一个
$("tr:eq(索引)")得到指定索引的tr
$("tr:gt(索引)")得到大于指定索引的tr
$("tr:lt(索引)")得到小于指定索引的tr
$("div:not(.test)")得到class不为test的div
$("div:not(:eq(3))")得到索引不为3的div

表单元素过滤

表单元素过滤作用
$(":input")得到所有表单元素,包含input、select、textarea
$(":text")得到文本框
$(":password")得到密码框
$(":radio")得到单选按钮
$(":checkbox")得到复选框
$(":checked")得到被选中的表单元素,包含radio、checkbox、select
$(":checkbox:checked")得到被选中的复选框
$(":selected")得到被选中的下拉菜单选项
$(":reset")/$(":submit")得到重置/提交按钮

属性过滤选择器

属性过滤作用
$("a[href]")得到所有包含href属性的a标签
$("a:not([href])")得到所有不包含href属性的a标签
$("div[属性=值]")得到指定属性和值的div
$("div[属性!=值]")得到指定属性不等于指定值的div
$("div[属性^=值]")得到以指定值开头的指定属性的div
$("div[属性$=值]")得到以指定值结尾的指定属性的div
$("div[属性*=值]")得到包含指定值的指定属性的div
$("div[属性1=值][属性2=值])得到既包含指定值的属性1且包含指定值的属性2的div

内容/文本过滤选择器

内容过滤选择器作用
$("p:contains(文字)")得到带有指定文字的p标签
$("p:not(:contains(文字))")得到不带有指定文字的p标签
$("p:empty")得到没有任何文本的p标签

操作节点

获取/设置节点内容

函数作用
节点.text()获取节点中的文本。相当于js中的var text=x.innerText;
节点.text("内容")设置节点中的文本。相当于js中的x.innerText="内容";
节点.html()获取节点中的内容。相当于js中的var text=x.innerHTML;
节点.html("内容")设置节点中的内容。相当于js中的x.innerHTML="内容";
节点.val()获取某节点中的value属性值。相当于js中的var val=x.value;
节点.val("内容")设置某节点中的value属性值。相当于js中的x.value="内容";

获取/设置节点样式

函数名总用
节点.css("样式名")获取某个节点的某个样式值
节点.css("样式名","值")设置某个节点的某个样式
节点.css({样式名:"值",样式名:"值"...})同时设置多个样式
节点.css("样式名","值").css("样式名","值")同时设置多个样式

获取/设置节点属性

函数名作用
节点.attr("属性名")获取某个属性的值
节点.attr("属性名","值")设置某个属性的值
节点.removeAttr("属性名")移除指定属性
节点.addClass("class名")给某个节点追加class值
节点.removeClass("class名")移除某个节点的某个class值
节点.toggleClass("class名")添加或移除某个class值。如果没有则添加,有则移除。
节点.hasClass("class名")判断是否存在某个class值

创建节点:$("完整标签");

//js写法
var h1 = document.createElement("h1");
h1.immerText="创建出的h1";
//jQuery写法
var $h1 = $("<h1>创建出的h1</h1>");
//以上两种方式创建出的节点都是处于游离态的,需要添加到已有的某个节点上

添加子节点

添加子节点作用
父节点.append(子节点)将子节点添加到父节点中的最后
子节点.appendTo(父节点)将子节点添加到父节点中的最后
父节点.prepend(子节点)将子节点添加到父节点中的最前
子节点.prependTo(父节点)将子节点添加到父节点中的最前

添加同级节点

添加同级节点作用
原始节点.before(新节点)添加新节点到原始节点之前
新节点.insertBefore(原始节点)添加新节点到原始节点之前
原始节点.after(新节点)添加新节点到原始节点之后
新节点.insertAfter(原始节点)添加新节点到原始节点之后

移除节点

移除节点作用
某节点.remove()移除某节点
某节点.empty()移除某节点中的子节点

复制节点

复制节点作用
节点.clone()复制某节点,不复制节点的事件
节点.clone(true)复制某节点,复制节点的事件

修饰节点

替换节点作用
旧节点.replaceWith(新节点)用新节点替换旧节点
新节点.replaceAll(旧节点)用新节点替换旧节点
包裹节点作用
原节点.wrap(指定节点)使用指定字节包裹原节点,如果原节点是集合,会逐一包裹
原节点.wrapAll(指定节点)使用指定字节包裹原节点,如果原节点是集合,会整个用一个节点包裹
父节点.wrapInner(指定节点)使用指定节点对父节点中的所有子节点整个包装

通过节点获取节点

函数名称作用
某节点.next()得到某节点的下一个节点
某节点.prev()得到某节点的上一个节点
某节点.nextAll(参数)得到某节点之后的所有或指定节点。参数为标签名的字符串,如nextAll("a")表示得到后续所有a标签
某节点.prevAll(参数)得到某节点之后的所有或指定节点。参数为标签名的字符串,如prevAll("a")表示得到后续所有a标签
某节点.siblings(参数)得到某节点同级所有或指定节点。
父节点.children(参数)得到某节点的所有或指定子节点
节点集合.first(参数)得到节点集合中的第一个子节点
节点集合.last(参数)得到节点集合中的最后一个子节点
子节点.parent()得到某节点的父节点
某节点.index()得到节点所在集合的索引

预设动画

函数作用
show()同时将宽度和高度从0变为原始值,最终display:block
hide()同时将宽度和高度从原始值变为0,最终display:.none
toggle()切换show/hide
fadeIn()将不透明度从0变为1,淡入,最终display:block
fadeOut()将不透明度从1变为0,淡出,最终display:none;
faseToggle()切换fadeln/fadeOut
slideUp()将高度从原始值变为0,最终display:none;
slideDown()将高度从0变为原始值,最终display:block;
slideToggle()切换slideUp/slideDown
以上所有函数都可以给两个参数。第一个参数为动画执行所需毫秒,第二个参数为动画执行结束后的回调函数,表示在动画执行后执行。
$("#md").click(function(){
    //如果希望在动画后执行,不能这样写
    //$(this).fadeOut(500);
    //alert("消失后弹出");
    
    //正确写法
    $("#md").hide(2000, function() {
		alert("消失了");
	});
});

自定义动画

启用自定义动画

  • 使用animate()函数,该函数有四个参数分别为样式组,所需事件、动画函数、回调函数
  • animate()函数支持链式写法
  • 只支持数值型样式,如尺寸、位置等,字符串型的样式不支持,如颜色等

停止动画

停止当前动画:节点.stop();

停止一切动画:节点.stop(true);

事件

JS中的事件绑定方式

//dom节点.on事件=function(){};
document.getElementById("md").onclick=function(){};

jquery中的事件绑定方式:

//jquery节点.事件(function(){});
$("#md").click(function(){
    
});
//或者
//jquery节点.bind("事件名",function(){});
$("#md").bind("click",function(){
    
});
时间函数作用
click()单击事件
hover()鼠标悬停/离开。该事件可以传入两个函数,分别表示悬停时触发第一个函数,离开时触发第二个函数。如果只有一个函数,悬停离开均触发这一个函数。
focus()获取的焦点
blur()失去焦点
change()改变。适用于各种能发生变化的节点,入文本框、单选、复选按钮、下拉框等。
mouseup/down/over/move/enter/leave/out()鼠标相关
submit()表单提交
......将js中的事件名去掉on变为函数

JSON

是一种数据交换格式,可以理解为保存数据、交换数据的一种格式。

JSON数据通常以键值对的形式保存。

键:值

键的类型为字符串,值的类型可以是普通类型、对象或数组

值的数据类型

值的数据类型符号示例
字符串"""name":"张三"
数值型直接写数字age=21
逻辑值true/false"married":false
null"car":null
对象{}"pet":{"name":"小红","age":2}
数组[]"family":[{"relation":"父亲","name":"xxx"},{"relation":"母亲","name":"xxx"}]

举例:

属性:姓名、年龄、性别、宠物、婚姻状况、房产、家庭成员

{
	"name":"王亮",
	"age":20,
	"sex":"男",
	"pet":{
		"petName":"可乐",
		"petType":"狗"
	},
	"married":true,
	"house":null,
	"family":[{
		"name":"王四喜",
		"relation":"父亲"
	},{
		"name":"黄欣",
		"relation":"母亲"
	}]
}

在HTML中读取JSON文件

  • $.getJSON("json文件路径",回调函数)
  • .ajax({url:"访问的资源路径",success:function(){访问成功后的回调函数}})
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值