如果用户访问的时候,访问的是动态资源的话,服务器先把动态资源转换成静态资源,在发送给浏览器
概念:Hyper Text Markup Language:超文本标记语言
超文本:使用超链接的方式,把不同空间的文字信息组织在一起的一种网状文本
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> </head> <body> </body> </html>
1,<!DOCTYPE html> 声明文档为html类型 lang=en /zh-CN 定义页面为英文或者中文,不区分大小写
如:<meta charset="utf-8" /> 设置编码环境
<meta http-equiv="refresh" content = "30"> 每30秒刷新页面
标签的组成
单标签: 开始 标签和结束标签写在一起 如 <br /> <img />
标签的嵌套:
标签的学习
<html> <head> <title> <body> <!DOCTYPE html>
<!-- 标题标签 --> <h1>标题1</h1> <h2>标题1</h2> <h3>标题1</h3> <h4>标题1</h4> <h5>标题1</h5> <h6>标题1</h6> <!-- 段落标签P --> <p>段落标签</p> <p>段落标签</p> <div>div标签</div> <div>div标签</div> <!-- 换行 --> <br /> <!-- 水平线 --> <hr > <hr color="red"> <hr width="200px"> <hr size="7" color="aqua"> <hr width="200px" align="right" color="red">
<!-- 含有样式的标签 --> <b>字体加粗</b> <i>斜体</i> <center>居中</center> <font color="red" size="7" face="宋体">字体</font>
2,RGB() rgb(值1,值2,值3) 值的取值范围 0-255
rgb(0,0,255) :蓝色 --> r=0,g=0,b=255
3,#值1值2值3: 16进制的取值方式,3个值也是对应的rgb
<!-- 图片标签 --> <img src="img/book.jpg" width="200px" alt="表示替换的文本"> <!-- 绝对路径 --> <!-- 相对路径 ./ ../ --> <img src="../../抽奖/img/1.jpg" alt="">
<!--列表 --> <!-- 无序列表 --> <ul type="circle"> <li>北京</li> <li>上海</li> <li>南京</li> </ul> <!-- 有序列表 --> <ol type="I"> <li>北京</li> <li>上海</li> <li>南京</li> </ol> <!-- 自定义 --> <dl> <dt> 城市</dt> <dd>北京</dd> <dd>上海</dd> <dd>南京</dd> </dl>
<a href="http://www.baidu.com">链接到百度</a> <a href="test.html">跳转页面</a> <a href="mailto:1111111@qq.com">联系我们</a> <a href="#top">回到顶部</a> <a href="http://www.baidu.com"><img src="img/book.jpg" width="100px" alt=""></a> <a href="http://www.baidu.com" target="_blank">链接到百度</a> <a href="http://www.baidu.com" target="_self">链接到百度</a>
<table width="1000px" border="1px" cellspacing="0px" cellpadding="10px"> <caption>标题</caption> <tfoot> <tr> <th >Header</th> <th>Header</th> <th>Header</th> <th>Header</th> <th>Header</th> </tr> </tfoot> <tr bgcolor="aquamarine"> <td colspan="3">Data</td> <td align="center">Data</td> <td>Data</td> <!-- <td>Data</td> --> <!-- <td>Data</td> --> </tr> <tr> <td bgcolor="bisque">Data</td> <td rowspan="3">Data</td> <td>Data</td> <td>Data</td> <td>Data</td> </tr> <tr> <td>Data</td> <!-- <td>Data</td> --> <td>Data</td> <td>Data</td> <td>Data</td> </tr> <thead> <tr> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> <td>Data</td> </tr> </thead> <tbody> </tbody> </table>
form标签定义了一个供用户输入的html表单,可以声明一个范围,这个范围代表了采集用户数据的范围
<form action="http://www.baidu.com" method="post"> 用户名: <input type="text" name="username"> <br> 密码: <input type="password" name="password" ><br> <input type="submit" value="提交"/> </form>
action:指定提交数据的url(表示数据要提交到的地方)
get:请求的参数会在地址栏中显示,url的长度是有限制的,get方法是不安全的
post:请求的参数不会在地址栏中显示,会封装在请求体中,请求参数没有大小的限制,post方法比较安全
注意:如果表单中的数据想要被提交,需要在表单中加一个name属性
input :定义了输入的控件,可以通过修改type属性的值,从而改变元素展示的样式
<form action="#" method="get">
<label for="user">用户名:</label>
<input id="user" type="text" name="username"> <br>
密码: <input type="password" name="password" ><br>
性别: <input id="man" type="radio" name="gender"> <label for="man">男</label> <input type="radio" name="gender">女 <br>
爱好: <input id="bas" type="checkbox" name="hobby"/>
<label for="bas">打篮球</label> <input type="checkbox" name="hobby"/> 踢足球 <input type="checkbox" name="hobby"/> 看电影
<input type="checkbox" name="hobby"/> 学习 <br>
文件 : <input type="file"/> <br>
按钮 : <input type="button" value="按钮" /> <br>
颜色: <input type="color" /> <br>
时间: <input type="date" /> <br>
邮箱: <input type="email" /> <br>
图片: <input type="image" src=""> <br>
自我介绍 : <textarea rows="5" cols="10"></textarea> <br>
籍贯: <select name="city"> <option value="nj">南京</option> <option value="sh">上海</option> <option value="hz">杭州</option> </select> <br> <input type="submit" value="提交"/> </form>
<h1>注册页面</h1> <table width="300px" > <tr> <td width="100px"> 用户名: </td> <td width="200px"> <input type="text" /> </td> </tr> <tr> <td width="100px"> 密码: </td> <td width="200px"> <input type="password" /> </td> </tr> <tr> <td width="100px"> 邮箱: </td> <td width="200px"> <input type="email" /> </td> </tr> <tr> <td width="100px"> 手机号: </td> <td width="200px"> <input type="text" /> </td> </tr> <tr> <td width="100px"> 性别: </td> <td width="200px"> <input type="radio" name="gender" />男 <input type="radio" name="gender" />女 </td> </tr> <tr> <td width="100px"> 爱好: </td> <td width="200px"> <input type="checkbox" name="hobby" />唱歌 <input type="checkbox" name="hobby" />打球 <input type="checkbox" name="hobby" />旅游 </td> </tr> <tr> <td width="100px">籍贯</td> <td width="200px"> <select> <option value ="">南京</option> <option value ="">上海</option> </select> </td> </tr> <tr> <td width="100px">个人介绍:</td> <td width="200px"> <textarea rows="4" cols="25"></textarea> </td> </tr> <tr> <td align="center" colspan="2"> <input type="checkbox" /> 是否同意本公司的协议 </td> </tr> <tr> <td align="center" colspan="2"> <input type="submit" value="注册"> </td> </tr> </table>
使用方式: ftp://admin:123456@192.168.1.1/xxx.pdf
使用方式: file:///C:/windows/system/win32.dll
http:超文本传输协议 Hyper Text Transfer Protocol 用来从万维网的服务器传输超文本到本地浏览器中的传输协议
1,仅仅可以省略结束标签的元素有:p,li,dt,dd,rb,rt,rtc,rp,thead,tbody,tfoot
tr,td,th,optgroup,option,colgroup
2,绝对没有结束标签的元素有:area,base,br,col,command,embed,hr,img,input,
keygen,link,menuitem,meta,param,source,track,wbr
3,可以将开始标签和结束标签一起省略的元素:html,head,body,colgroup,tbody
<html>,<head>,<title>,<style>,<meta>,<base>,<body>,
<h1>~<h6>,<p>,<br>,<hr>,<div>,<span>
<b>,<strong>,<small>,<em>,<i>,<sub>,<sup>,<bdo>
<abbr>,<address>,<blockquote>用于定义块引用,<q>,<code>,<cite>
<dfn>,<del>,<ins>,<kbd>,<pre>,<samp>,<var>
download:此属性只是浏览器下载URL而不是导航到它,因此提示用户将其保存 为本地文件
media:此属性规定目标URL是为什么类型的媒介/设备进行优化的
1,新增的文档结构元素,如<header>,<footer>,<aside>,<nav>
time 用于显示被标注的内容是日期或者时间,采用24小时制,会用到以下2个属性
pubtime:这个属性指是time元素中的日期时间是文档的发布日期
progress:用于表示一个进度条,常用于下载进度,加载进度等
html5规范对通用属性也做了一定的修改,保留了,id,style,class,dir,title,lang
新增了contenteditable 此属性规定元素内容是否可编辑,当元素可编辑时,
designMode:如果将designMode属性设置为on,则该页面上所有支持
hidden:HTML5所有的元素都有hidden属性,属性值为true时显示,
属性为false时隐藏,hidden=true相当于display:none
HTML5为input、textarea等元素增加了spellcheck属性,这个属性有true和false
两个属性值,如果设置为true,浏览器会对用户输入的文本内容执行输入检查,如果检查不通过,那么浏览器会对拼错的单词进行提示
checked:设置单选框,复选框初始状态为选中,属性值仅有checked,
disabled:设置首次加载禁用该元素,表示该元素无法获取输入焦点,无法被选中, 无法响应单击事件
label元素用来对其他表单控件元素进行说明,主要用于单击label元素生成的标签
使用label元素的for属性,指定为关联表单控件的id即可
<input type = "color">元素是input元素中的一个特定种类,
用于创建一个允许用户使用的颜色选择器,或者输入兼容css语法的颜色代码区域
time类型是input元素生成一个时间选择器,它的结果值包含小时和分但是不包括秒数。
datetime类型使input元素生成一个UTC的日期时间选择器
datetime-local类型是input生成一个本地时间的选择器
<input type="date">元素可以让用户输入一个日期的输入区域,也可以使用日期选择器,值包括年、月、日
month可以使input生成一个月份选择器,语法同date类型
week类型可以是input元素生成一个选择第几周的选择器,语法同date
range类型生成 一个拖动条,通过拖动条,用户只能输入指定范围,指定步长的值
生成一个URL输入框,浏览器会在提交表单前自动检查用户输入的内容如果不符合URL格式,则会阻止提交
output元素用于表示计算或者用户操作的结构,可以更加明显的显示其他表单控件的值
使用场景及方法与formaction相同,实现不同的submit类型按钮用
不同的enctype提交
使用场景及方法与formaction相同,实现不同的submit类型按钮用
主要用在文本框,该属性的作用是规定可描述输入字段预期值的简单提示信息
对客户资料进行保密,防止浏览器软件或者恶意插件获取到,默认值是on,
如果需要增加安全性,在input中加入属性autocomplete=“off”
为某个表单控件增加autofocus后,如果浏览器打开这个页面,
list属性为文本框指定一个可用的选项列表,当用户在文本框中输入信息时,
作用:用来美化网页的,可以用来网页风格设计,比如颜色,字体,定位...
<p style="color: red;font-size: 50px;">这是一个p标签</p>
<style type="text/css"> div{ color: blue; font-size: 80px; } </style> <div>这是一个div标签</div>
span{ color: aqua; font-size: 100px; } <link rel="stylesheet" type="text/css" href="css/test.css"/> <span>这是一个span标签</span>
一个html元素,可以有多个样式,但是生效的只会有一个,如果一个元素有多个样式,那么我们使用权重值对样式进行排序
权重值:行内引入样式 +1000,id选择器 +100,属性选择器、class选择器、伪类选择器 +10,普通标签、伪元素 +1
特定的css属性可以从父元素向下传递给子元素,color、font开头、text开头、line开头 可以继承,表格的属性也可以继承
<style type="text/css"> #span1{ color: red; } .div1{ color: blue; } p{ color: #00FFFF; } *{ color: orange; } </style> </head> <body> <div class="div1" >这是一个div元素 <p>div的子元素p <span id="span1"> p元素的子元素span </span> </p> </div> <p>单独的p标签</p> <span>单独的span标签</span> </body>
<style type="text/css"> /* div p{ color: red; } div span{ color: green; } */ /* div>p{ color: blue; } div+p{ color: red; } */ </style> </head> <body> <div >这是一个div元素 <p>div的子元素p <span > p元素的子元素span </span> </p> </div> <p>单独的p标签</p> <span>单独的span标签</span> </body>
Odd 和 even 是可用于匹配下标是奇数或偶数的子元素的关键词(第一个子元素的下标是 1)。
p:nth-child(odd) { background:#ff0000; } p:nth-child(even) { background:#0000ff; }
background-attachment 设置图片是否随着背景滚动
<style type="text/css"> div{ width: 100px; height: 100px; background-color: beige; color: red; /* direction: rtl; */ /* letter-spacing: 10px; */ /* line-height: 100px; */ /* text-align: center; */ text-indent: 50px; text-shadow: 5px 5px 5px blue; /*阴影横向距离,阴影纵向距离,阴影模糊度,阴影颜色*/ text-transform: lowercase ; word-spacing: 5px; white-space: nowrap; } a{ text-decoration: none; } </style> </head> <body> <div> 测试文本ads faFA SDFS <br> 测试文本 <a href="">链接标签</a> </div> </body>
如果父级设置了min-height,那么父元素的高度会随着子元素的高度的增加而增加
如果设置了max-height,那么父元素的高度会随着子元素的高度减小而减小
<style type="text/css"> .div1{ width: 200px; max-height: 200px; background-color: aqua; } .div2{ width: 100px; height: 100px; background-color: antiquewhite; } </style> </head> <body> <div class="div1"> <div class="div2"></div> </div> </body>
list-style-position 设置列表标记项的位置
<style type="text/css"> ul{ /* list-style-image: url(img/4.jpg); */ list-style-position: inside; list-style-type:decimal; /* list-style: none; */ } </style> </head> <body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> </ul> </body>
<style type="text/css"> table{ /* border-collapse: collapse; */ border-spacing: 10px; caption-side:bottom ; empty-cells: hide; } </style> </head> <body> <table border="1px" > <caption>标题</caption> <tr> <td>1</td> <td>2</td> </tr> <tr> <td>1</td> <td>2</td> </tr> <tr> <td></td> <td></td> </tr> </table> </body>
content 一般和:before、:after配合使用,给元素中插入内容
<style type="text/css"> h1::before{ content: "南科技"; } h2::after{ content: "南科技"; } </style> </head> <body> <h1>html</h1> <h2>html</h2> </body>
<style type="text/css"> .div2{ /* padding-top: 50px; padding-left: 100px; */ /* padding: 10px; */ /* 上下左右都为10 */ /* padding: 10px 20px; */ /* 上下为10,左右为20 */ /* padding: 10px 20px 30px; */ /* 上10,左右20,下30 */ padding: 10px 20px 30px 40px; /* 上10,右20,下30,左40 */ } </style> </head> <body> <div class="div2"> 1 </div> </body>
<style type="text/css"> .div2{ /* margin-top: 20px; margin-bottom: 60px; margin-left: 80px; */ margin: 10px 20px 30px 40px; } </style> </head> <body> <div class="div2"> 1 </div> </body>
值: none:无边框效果 dotted:点线效果 dashed:虚线效果 solid:实线效果 double:双线效果
<style type="text/css"> .div2{ /* 复合写法 */ border: 5px solid red; /* 单独复合写法 */ border-top: 1px solid blue ; border-bottom: 3px solid orange; /* 单独的样式的写法 */ border-top-style: dashed; border-right-style: double; /* 单独的宽度的写法 */ border-left-width: 10px; /* 单独的颜色写法 */ border-left-color: aqua; } </style> </head> <body> <div class="div2"> 1 </div> </body>
文档中的元素按照默认的显示规则排版布局,从上到下,从左到右,块级元素独占一行,行内元素按照顺序水平渲染,直到在当前行遇到了边界,然后换到下一行继续渲染,元素之间内容不能重叠。
设定元素向某一个方向以浮动的方式排列元素,从上到下,按照指定方向见缝插针。元素不能重叠显示。
<style type="text/css"> div{ /* float: left; */ /* float: right; */ } span{ /* float: left; */ float: right; } </style> </head> <body> <div>div1</div> <div>div2</div> <div>div3</div> <span>span1</span> <span>span2</span> <span>span3</span> </body>
<body> <div> <ul> <li>主题导航</li> <li>9.9包邮</li> <li>好货让利榜</li> <li>大额优惠券</li> <li>母婴榜</li> <li>品牌尖货</li> <li>特惠宝贝</li> <li>潮流范</li> <li>有好货</li> </ul> </div> </body>
<body> <div class="shop-list"> <div class="shop"> <div class="shop-text"> <span>保暖内衣</span> <span>全场五折起</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> <div class="shop"> <div class="shop-text"> <span style="color: #FFA500;">唇彩</span> <span>大牌直降</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> <div class="shop"> <div class="shop-text"> <span style="color: orchid;">薄款外套</span> <span>秋装上新</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> <div class="shop"> <div class="shop-text"> <span>保暖内衣</span> <span>全场五折起</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> <div class="shop"> <div class="shop-text"> <span>保暖内衣</span> <span>全场五折起</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> <div class="shop"> <div class="shop-text"> <span>保暖内衣</span> <span>全场五折起</span> </div> <div class="shop-img"> <img width="120px" src="img/adv-pic02.jpg" > </div> </div> </div> </body>
<style type="text/css"> div{ /* float: left; */ float: right; } .div2{ /* clear: left; */ clear: right; } </style> </head> <body> <div>div1</div> <div class="div2">div2</div> <div>div3</div> </body>
<style type="text/css"> div{ height: 100px; width: 100px; background-color: aquamarine; /* overflow: hidden; */ /* overflow: scroll; */ /* overflow: auto; */ /* overflow: visible; */ /* 设置文本过长,显示省略号的效果 */ white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style> </head> <body> <div> 这是一段测试文本 这是一段测试文本 这是一段测试文本 这是一段测试文本 </div> </body>
inline:设置元素以行元素的方式显示,行元素不能设置宽高,内容并排显示
inline-block:设置元素以行级块元素的方式显示,可以设置宽高,且可以并排显示
block:设置元素以块元素的方式显示,可以设置宽高,不能并排显示
<style type="text/css"> .div1{ width: 100px; height: 100px; background-color: #4169E1; /* display: none; */ /* display: inline; */ /* display: inline-block; */ display: block; } .div2{ width: 100px; height: 100px; background-color: #FFA500; /* display: inline; */ /* display: inline-block; */ display: block; } </style> </head> <body> <div class="div1">div1</div> <div class="div2">div2</div> </body>
visibility:定义元素是否可见,设置隐藏后,原有的区域会保留,这是跟display的区别
直接定位元素在文档中或者父元素中的位置,脱离了文档流,元素可以重叠,按照显示级别以覆盖的方式显示
absolute: 绝对定位 ,相对于父元素,如果没有父元素,找到页面
<style type="text/css"> .div1{ width: 100px; height: 100px; background-color: #4169E1; /* position: sticky; top: 0px; */ /* position: fixed; top: 50px; */ /* position: absolute; top: 50px; left: 100px; */ position: relative; top: 50px; left: 100px; z-index: 10; } .div2{ width: 100px; height: 100px; background-color: #FFA500; position: absolute ; top: 30px; left: 50px; } .div3{ width: 20px; height: 20px; background-color: #5dff9e; position: absolute; top: 30px; left: 30px; /* position: relative; top: 30px; left: 30px; */ } </style> </head> <body> <div class="div1">div1 <div class="div3">div3</div> </div> <div class="div2">div2</div> </body>
采用Flex布局的元素,称为Flex容器(flex container),简称“容器”。它的所有子元素自动成为容器成员,成为flex项目(flex item),简称“项目”。
<style type="text/css"> .container{ width: 1000px; height: 600px; background-color: antiquewhite; display: flex; /* flex-direction: column; */ /* flex-direction: column-reverse; */ /* flex-direction: row; */ /* flex-direction: row-reverse; */ /* flex-wrap: nowrap; */ flex-wrap: wrap; /* flex-wrap: wrap-reverse; */ /* justify-content: flex-start; */ /* justify-content: flex-end; */ /* justify-content: center; */ /* justify-content: space-between; */ /* justify-content: space-around; */ /* align-items: flex-start; */ /* align-items: flex-end; */ /* align-items: center; */ /* align-items: stretch; */ /* align-items: baseline; */ /* align-content: flex-start; */ /* align-content: flex-end; */ /* align-content: center; */ /* align-content: space-between; */ /* align-content: space-around; */ /* align-content: stretch; */ } .div1{ width: 100px; height: 100px; background-color: #0000FF; order: 1; flex-grow: 1; } .div2{ width: 100px; height: 100px; background-color: red; order: 5; flex-grow: 1; } .div3{ width: 100px; height: 100px; background-color: green; order: 4; flex-grow: 5; } .div4{ width: 100px; height: 100px; background-color: yellow; order: 3; } .div5{ width: 100px; height: 100px; background-color: orange; order: 2; } </style> </head> <body> <div class="container"> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="div4">4</div> <div class="div5">5</div> <!-- <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="div4">4</div> <div class="div5">5</div> <div class="div1">1</div> <div class="div2">2</div> <div class="div3">3</div> <div class="div4">4</div> <div class="div5">5</div> --> </div> </body>
<style type="text/css"> h2~p{ color: red; font-size: 50px; } </style> </head> <body> <h1>h1文档内容</h1> <p>p文档内容1</p> <h2>h1文档内容</h2> <p>p文档内容2</p> <h3>h1文档内容</h3> <p>p文档内容3</p> </body>
<style type="text/css"> /* a[href^="http"]{ color: red; font-size: 50px; } */ /* a[href$="cn"]{ color: red; font-size: 50px; } */ a[href*="a"]{ color: red; font-size: 50px; } </style> </head> <body> <a href="http://www.baidu.com">百度</a> <a href="www.qq.cn">腾讯</a> <a href="http://taobao.com">淘宝</a> </body>
:root 选择文档的根元素,html中的根元素就是<html>
:first-of-type 向同级同类型的元素中的第一个元素添加样式
:last-of-type 向同级同类型的元素中的最后一个元素添加样式
:nth-of-type(n) 向同级同类型的元素中的第n个元素添加样式
:only-of-type 向同级同类型的元素中的唯一元素添加样式
<style type="text/css"> :root{ font-size: 50px; } li:only-child{ color: red; } li:first-of-type{ color: blue; } li:last-of-type{ color: aqua; } li:nth-of-type(3){ color: green; } li:only-of-type{ color: blueviolet; } :empty{ width: 100px; height: 50px; background-color: #0000FF; } </style> </head> <body> <ul> <li></li> </ul> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li></li> </ul> <ul> <li>6</li> <li>7</li> <li>8</li> <li>9</li> <li></li> </ul> </body>
:enabled 向处于可用状态的元素添加样式(表单、超链接)
<style type="text/css"> :enabled{ color: red; } :disabled{ color: blue; } :checked{ outline: 3px dashed red; } p:not(.test){ color: red; } :target{ border: 2px solid red; } ::selection{ color: aqua; background-color: #FF0000; } </style> </head> <body> <p><a href="#content1">跳转到1</a></p> <p><a href="#content2">跳转到2</a></p> <input type="button" value="可用的元素" /> <input type="button" value="禁用的元素" disabled="disabled" /> <h1 id="content1">内容1</h1> <input type="checkbox" /> <input type="checkbox" /> <h1 id="content2">内容2</h1> <p class="test">p标签内容1</p> <p >p标签内容2</p> <p >p标签内容3</p> <p class="test">p标签内容4</p> </body>
<style type="text/css"> div{ width: 200px; height: 200px; background-color: aquamarine; border: 5px dashed red; padding: 20px; /* background-clip: border-box; */ /* background-clip: padding-box ; */ background-clip: content-box; } </style> </head> <body> <div> div </div> </body>
<style type="text/css"> div{ width: 200px; height: 200px; background-image:url(img/book.jpg) ; background-size: 50px 50px; background-repeat: no-repeat; border: 5px dashed red; padding: 20px; margin: 10px; float: left; } </style> </head> <body> <div style="background-origin: border-box;"> div </div> <div style="background-origin: padding-box;"> div </div> <div style="background-origin: content-box;"> div </div> </body>
src:url(字体文件的url),local(该字体在本地的名称);
text-overflow:设置文本超过元素框大小的时候处理的方式
<style type="text/css"> div{ width: 100px; height: 100px; background-color: antiquewhite; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; } </style> </head> <body> <div> 测试文本内容, 测试文本内容 </div> </body>
<style type="text/css"> div{ width: 100px; height: 100px; background-color: antiquewhite; margin: 50px; } </style> </head> <body> <div style="word-break:break-all;"> textarea textoverflow textarea textoverflow textarea textoverflow </div> <div style="word-wrap: break-word;"> this is a veryveryveryveryveryveryveryveryveryvery long </div> </body>
boder-radius: 1 2 3 4 /1 2 3 4
<style type="text/css"> div{ width: 100px; height: 100px; border: 3px solid red; float: left; margin: 10px; } </style> </head> <body> <div style="border-top-left-radius: 50px;"></div> <div style="border-top-right-radius: 50px;"></div> <div style="border-bottom-right-radius: 50px;"></div> <div style="border-bottom-left-radius: 50px;"></div> <div style="border-radius: 50px;"></div> <div style="border-radius: 50px 100px/50px 100px; "></div> <div style="border-top-left-radius: 50px; border-bottom-left-radius: 50px;width: 50px;"></div> </body>
box-shadow 5px 5px 10px 5px red inset ;
<style type="text/css"> div{ width: 50px; height:50px; background-color: orange; box-shadow: 5px 5px 10px 5px red inset ; } </style> </head> <body> <div> </div> </body>
<style type="text/css"> div{ width: 300px; border: 3px solid red; overflow: auto; } </style> </head> <body> <div style="resize: none;">div1测试内容</div> <div style="resize: both;">div1测试内容</div> <div style="resize: horizontal;">div1测试内容</div> <div style="resize: vertical;">div1测试内容</div> </body>
<style type="text/css"> div{ width: 300px; border: 3px solid red; overflow: auto; outline: 5px dashed #0000FF; } </style> </head> <body> <div style="outline-offset: 20px;">div1测试内容</div> </body>
transform:用于设置元素的变形,可用使用一个或者多个变形函数,常用的变形函数如下:
1,translate(x,y):表示元素水平方向移动x,垂直方向移动y
2,rotate(x) :表示元素顺时针旋转x角度,单位式deg
3,scale(x,y):表示元素水平方向缩放x,垂直方向缩放y
4,skew(xdeg,ydeg) :表示元素水平方向倾斜x度,垂直方向倾斜y度。
5,matrix(a,b,c,d,x,y):将旋转、缩放、移动、倾斜组合在一起
<style type="text/css"> div{ width: 100px; height: 100px; background: red; margin: 20px; } </style> </head> <body> <div style="transform: translate(10px,-20px);"></div> <div style="transform: translateX(100px);"></div> <div style="transform: translateY(-30px);"></div> <div style="transform: rotate(45deg);"></div> <div style="transform: rotate(45deg); transform-origin: top right;"></div> <div style="transform: scale(1.5,0.8);"></div> <div style="transform: scaleX(1.5);"></div> <div style="transform: scaleY(0.5);"></div> <div style="transform: skew(45deg,10deg);"></div> <div style="transform: skewX(10deg);"></div> <div style="transform: skewY(45deg);"></div> </body>
2,transform-style:设置嵌套的子元素在3D空间中的显示效果
4,perspective-origin :设置3D元素所基于的x轴和y轴
5,backface-visibility:设置颜色的背面面向屏幕的时候是否可见
<style type="text/css"> div{ width: 100px; height: 100px; background: red; transform: rotateX(180deg); } </style> </head> <body> <div style="backface-visibility: visible;"></div> <div style="backface-visibility: hidden;"></div> </body>
为元素增加过渡动画效果,可以设置在一定时间内,从一种样式变成另一种样式
transition-timing-function:过渡的时间曲线
transition-property:设置哪个CSS使用过渡
<style type="text/css"> div{ width: 100px; height: 100px; background: red; } div:hover{ width: 300px; } </style> </head> <body> <div style="transition-delay: 1s;transition-duration: 3s; transition-property: width; transition-timing-function: ease-in-out;"></div> <br> <div style="transition: width 5s; "></div> </body>
2,animation-name 使用@keyframes声明的动画
5,animation-timing-function 设置动画的时间曲线
6,animation-iteration-cout 动画的播放次数
7,animation-direction 设置动画的反向播放
8,animation-play-state 设置动画的播放状态
<style type="text/css"> @keyframes testanimation{ 0%{top:0px;left: 0px; background: red;} 25%{top:0px;left: 100px;transform: rotate(180deg);background: blue;} 50%{top:100px;left: 100px;transform: skew(120deg,30deg); background: orange;} 75%{top:100px;left: 0px;background: green;} 100%{top:0px;left: 0px;background: red;} } div{ width: 100px; height: 100px; background: red; position:relative ; } </style> </head> <body> <div style="animation-delay: 1s; animation-duration: 2s; animation-iteration-count: infinite; animation-name:testanimation ; animation-direction: alternate;"></div> <div style="animation:testanimation 2s infinite ;" ></div> </body>
div{ /* column-count: 6; */ column-width: 200px; column-gap: 30px; column-rule-style:dashed ; column-rule-color: #0000FF; column-rule-width: 10px; column-rule: 5px solid red; } </style> </head> <body> <div> 直播吧9月22日讯 英超官方公布了最新一轮新冠检测的结果,包括曼城队中场京多安在内,共有3人检测结果为阳性。 在9月14日到9月20日之间,共有1574名球员和球队工作人员接受了新冠病毒的检测,最终发现了3例阳性病例,其中就包括了曼城队的京多安,曼城官方在稍早前也已经确认了这一消息。 曼城官方:京多安感染新冠病毒,将接受10天隔离 根据英超官方和英国政府的规定,京多安将进行为期10天的自我隔离,他将有可能缺席曼城队接下来的3场比赛。德国中场也是曼城队中第三位感染新冠病毒的球员,此前队中边锋马赫雷斯和中卫拉波尔特也确诊感染,两人在上周都已回归训练,但只有马赫雷斯进入了球队客战狼队的大名单。 曼城官方的公告中并没有透露更多信息,只是补充了“俱乐部所有人都祝愿伊尔凯(京多安)能早日康复”。 </div> </body>
js的功能:可以增强用户和html页面的交互,可以控制html元素。
1992 nombase ---> 专门用来验证表单的 --->C-- 改名 ScriptEase
1995 网景 netscape -->LiveScript -->Java-->Javascript
1996 微软 借鉴了LiveScript -->ie -->JScript 收费
<button οnclick="javascript:alert('点击按钮,会显示这段消息')" >点击</button>
在文档的任意位置,写一对script标签,然后把js的代码写在里面就可以了
<script type="text/javascript"> alert("helloworld"); </script>
在外部新建一个js文件,然后再文档内部新建一个scriptsrc的标签,把外部文件引入即可
<script src="js/new_file.js" type="text/javascript" charset="utf-8"></script>
注意:script标签可以写在文档的任意位置,再html代码前和代码后,运行的顺序不一样
关键字是指可以用于表示控制语句的开始和结束,或者用于执行特定操作。
比如: var if else for while switch case this...
强类型语言的变量:java,C 开辟内存区域的时候,会把这个区域要存放的类型定义好。
如 Java中声明变量: int a = 10; a = 10.5;错误
弱类型语言的变量:js 开辟的内存区域不会定义数据的类型,可以存放任意类型的数据
如 js中声明变量: var a = 10; a = 10.5;正确
undefined是派生自null的,所以null==undefined 返回结果为true
对象(Object)、数组(Array)、函数(function)
<script type="text/javascript"> //声明number类型 var a = 10; var b = 10.5; var c = NaN; document.write(a+"<br>"); document.write(b+"<br>"); document.write(c+"<br>"); //声明字符串类型 var str1 = 'abc'; var str2 = "abc"; document.write(str1+"<br>"); document.write(str2+"<br>"); //声明布尔类型 var flag = true; document.write(flag+"<br>"); //声明null和undefined类型 var obj; var obj1 = null; var obj2 = undefined; document.write(obj+"<br>"); document.write(obj1+"<br>"); document.write(obj2+"<br>"); </script>
<script type="text/javascript"> //声明number类型 var a = 10; var b = 10.5; var c = NaN; //alert( NaN==NaN); //alert(10+NaN); // alert(null==undefined); document.write(a+"-----"+typeof(a)+"<br>"); document.write(b+"-----"+typeof(b)+"<br>"); document.write(c+"-----"+typeof(b)+"<br>"); //声明字符串类型 var str1 = 'abc'; var str2 = "abc"; document.write(str1+"-----"+typeof(str1)+"<br>"); document.write(str2+"-----"+typeof(str2)+"<br>"); //声明布尔类型 var flag = true; document.write(flag+"-----"+typeof(flag)+"<br>"); //声明null和undefined类型 var obj; var obj1 = null; var obj2 = undefined; document.write(obj+"-----"+typeof(obj)+"<br>"); document.write(obj1+"-----"+typeof(obj1)+"<br>"); document.write(obj2+"-----"+typeof(obj2)+"<br>"); </script>
<script type="text/javascript"> var a = new Array(); if(a instanceof Array){ document.write("a是数组"); }else{ document.write("a不是数组"); } </script>
<script type="text/javascript"> var a = '10'; var b = true; var c = Number(a); var d = Number(b); document.write(c+"--"+typeof(c)+"<br>"); document.write(d+"--"+typeof(d)+"<br>"); var aa = 10; var bb = 20; var cc = String(aa)+20; var dd = aa+bb; document.write(cc+"--"+typeof(cc)+"<br>"); document.write(dd+"--"+typeof(dd)+"<br>"); var aaa= 10; var bbb = 0; var ccc = "a"; var ddd = ""; var eee = "0"; document.write(Boolean(aaa)+"--"+Boolean(bbb)+"--"+Boolean(ccc)+"--" +Boolean(ddd)+"--"+Boolean(eee)+"<br>"); var x = '10'; var y = '10.6'; var z = parseFloat(x); var zz = parseInt(x); var zzz = parseFloat(y); var zzzz = parseInt(y); document.write(z+"--"+typeof(z)+"<br>"); document.write(zz+"--"+typeof(zz)+"<br>"); document.write(zzz+"--"+typeof(zzz)+"<br>"); document.write(zzzz+"--"+typeof(zzzz)+"<br>"); </script>
<script type="text/javascript"> var a = 5; var b = 2; var c = a+b; //7 var d = a-b; //3 var e = a*b; //10 var f = a/b; //2.5 var g = a%b; //1 document.write(c +"-"+d+"-"+e+"-"+f+"-"+g) </script>
3,比较运算符 > ,< , >= , <= , != , == , === , !==
使用比较运算符连接的内容,我们称之为表达式,表达式的返回结果为true或者false
注意: >=的意思是大于或者等于,只要满足一个条件,结果就为true。
==和===的区别:==表示值相等,就为true,===表示值和类型都相等,结果才为true。
<script type="text/javascript"> var a = 4; var b = 3; var c = a>b; //true var d = a<b; //false var e = a>=b; //true var f = a<=b; //false var g = a != b; //true var x = '3'; var y = 3; var z = x == y; //true var zz = x === y; //false </script>
逻辑与 && 表示两个表达式结果都为true,这个逻辑表达式的结果才为true,有一个为false,结果为false。
逻辑或 || 表示当两个表达式结果都为false的时候,整个逻辑表达式的结果为false,有一个为true,结果为true
逻辑取反 ! 表达式的结果为true,取反为fasle,结果为false,取反为true
<script type="text/javascript"> var a = 3,b = 4,c = 5,d = 6; var e = a>b && c<d; // false && true -->false var f = a<b || c>d; // true || false -->true var g = !(a<b); // !true -->false var h = !0; // false document.write(h); </script>
++ 表示自增 用法 :a++, ++a a = 5, a++ --> a=6
<script type="text/javascript"> var a = 3; var b = a++; // a ->4 b->3 var c = b++; // c->3 b->4 var d = ++c; // c->4 d->4 document.write(a+"---"+b+"---"+c+"---"+d); </script>
var a = 10,b = 10,c = 10,d = 10; a += 5; //15 b -= 5; //5 c *= 5;// 50 d /= 5; //2 document.write(a+"---"+b+"---"+c+"---"+d);
当条件表达式的值为true的时候,整个表达式的结果取真值,如果条件表达式的值为false,整个表达式结果取值false
var money = 500; var total = money * 0.8; money = money>=500 ? total : money; document.write(money);
if---else if中可以有多个表达式,最终要有一个统一的true或者false。
<script type="text/javascript"> var a = 16,b = 10; if(a>b){ document.write("a大于b"); }else if(a==b){ document.write("a等于b"); }else{ document.write("a小于b"); } /* 如果未满18岁,执行输出 未成年,不允许谈恋爱 如果年龄再18-30岁之间,执行输出,成年了,你可以自由恋爱 如果超过30岁了,输出,你年龄太大了 */ var age = prompt(); if(age<18){ document.write("未成年,不允许谈恋爱"); }else if(age>=18&&age<=30){ document.write("成年了,可以谈恋爱了"); } else{ document.write("年龄大了"); } </script>
switch case :表示多条件选择语句,case的值和提供的值相比较,哪个case值和比较值相等,那么,就执行此case代码块。
<script type="text/javascript"> //返回当前 日期是周几 var day = new Date().getDay(); switch(day){ case 0: document.write("今天是周日"); break; case 1: document.write("今天是周一"); break; case 2: document.write("今天是周二"); break; case 3: document.write("今天是周三"); break; case 4: document.write("今天是周四"); break; case 5: document.write("今天是周五"); break; case 6: document.write("今天是周六"); break; } </script>
如果需要一遍又一遍的运行相同的代码,并且每次的值有不同,这个时候就可以用循环语句
<script type="text/javascript"> //打印10行语句 //document.write("语句1"+"<br>"); //document.write("语句2"+"<br>"); //document.write("语句3"+"<br>"); //document.write("语句4"+"<br>"); //document.write("语句5"+"<br>"); //document.write("语句6"+"<br>"); //document.write("语句7"+"<br>"); //document.write("语句8"+"<br>"); //document.write("语句9"+"<br>"); //document.write("语句10"); // 使用for循环实现 //for (var i = 1; i <= 10; i++) { // document.write("语句"+i+"<br>"); //} //使用for循环来求1-100的和 var sum = 0; for (var i = 1; i <= 100; i++) { sum += i; } document.write(sum); document.write("<br>"); //求1-100之间偶数的和 var sum1 = 0; for (var i = 1; i <= 100; i++) { if(i%2 == 0){ sum1 += i; } } document.write(sum1); //求1-100之间奇数的和 var sum2 = 0; for (var i = 1; i <= 100; i++) { if(i%2 == 1){ sum2 += i; } } document.write(sum2); </script>
//多重for循环画矩形 for (var i = 0; i < 4; i++) { for (var j = 0; j < 6; j++) { document.write("*"); } document.write("<br>"); }
CSS代码 <style type="text/css"> td{ border: 1px solid black; } table{ border-collapse: collapse; } </style> JS代码 //使用多重for循环画出乘法表 document.write("<table>"); for (var i = 1; i <= 9; i++) { document.write("<tr >"); for (var j = 1; j <= i ; j++) { document.write("<td>"); document.write(j+"*"+i+"="+(i*j)+" "); document.write("</td>"); } document.write("<br>"); document.write("</tr>"); } document.write("</table>");
for (var i = 0; i < 5; i++) { if(i == 2){ continue; } document.write(i+","); } document.write("<br>"); for (var i = 0; i < 5; i++) { if(i == 2){ break; } document.write(i+","); }
for...in遍历 用来遍历对象的属性,多用于对象、数组这种复合类型
//使用forin遍历对象 var person = {id:1,name:"张三",age:20} for(key in person){ document.write(key+":"+person[key]); document.write("<br>") }
// 使用while循环求和 1-100 var i = 1; var sum = 0; while(i<=100){ sum += i; i++; } document.write(sum) //使用while求偶数和 var i = 0; var sum = 0; while(i<=100){ sum += i; i+=2; } document.write(sum);
do-while和while的区别,do-while最少会执行一次代码块的内容
//使用do-while 求1-100的和 var i = 1; var sum = 0; do{ sum += i; i++; }while(i<=100) document.write(sum);
概念:使用单独的变量名存储一系列的值,可以说是一个容器中装了一堆元素。
<script type="text/javascript"> //数组的第一种声明方式 var arr = new Array(); //空数组 var arr = new Array(3); //长度为3的数组 //数组的第二种声明方式 var arr = new Array("a","b","c"); //数组的第三种声明方式 var arr = ["a","b","c"]; </script>
添加、删除元素,遍历数组,插入元素,合并数组,数组转字符串,数组排序
//往空数组添加元素 var arr = new Array(); //使用下标的方式添加 arr[0] = "上海"; arr[1] = "南京"; arr[2] = "北京"; //使用push方法添加 var arr1 = new Array(); arr1.push("上海"); arr1.push("南京"); arr1.push("北京");
//使用for循环遍历arr数组 for (var i = 0; i < arr.length; i++) { document.write(arr[i]+"<br>"); } //使用for...in方式遍历 for(key in arr1){ document.write(key + ":" + arr1[key]); document.write("<br>"); }
pop方法:从尾部删除元素,删除后的元素会从数组中剥离并返回
//使用pop方法删除 //创建数组 var arr = ["a","b","c","d","e"]; document.write("数组删除之前的元素有:"); document.write("<br>"); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); } document.write("<br>"); //使用数组调用pop方法 var a = arr.pop(); document.write("调用pop方法被删除掉的元素是"+a); document.write("<br>"); document.write("数组删除之后的元素有:"); document.write("<br>"); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
//使用shift方法删除元素 var arr = ["a","b","c","d","e"]; //使用数组调用shift方法 var b = arr.shift(); document.write("调用shift方法被删除掉的元素是"+b); document.write("<br>"); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
语法: 数组.splice(删除元素的位置,删除元素的个数)
//使用splice方法删除 var arr = ["a","b","c","d","e"]; //使用数组调用shift方法 var c = arr.splice(2,2); document.write("调用splice方法被删除掉的元素是"+c); document.write("<br>"); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
调用unshift方法后,会返回一个值,这个值表示新数组的长度。
var arr = ["a","b","c"]; var newarr = arr.unshift("d"); document.write(newarr); document.write("<br>"); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
//使用splice方法插入元素 var arr = [1,2,3,4,5,6]; //从第三个位置开始插入789三个数字,没有删除元素 arr.splice(3,0,7,8,9); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
//使用concat方法连接数组 var arr = [1,2,3]; var arr1 = [4,5,6]; var arr2 = [7,8,9]; var newarr = arr.concat(arr1,arr2); for (var i = 0; i < newarr.length; i++) { document.write(newarr[i]+","); }
join方法 :将数组中的元素合并成一个用指定分隔符合并起来的字符串。
//数组转字符串 var arr = ['a','b','c']; var str = arr.join('|'); document.write(str + "-----"+ typeof(str));
sort方法会按照ascii码表值来排序。按照数字中的第一个值的顺序
//数组的排序 //reverse方法 var arr = [45,25,6,98,75,12,55]; //调用reverse方法 arr.reverse(); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); } document.write("<br>"); //调用sort方法 arr.sort(); for (var i = 0; i < arr.length; i++) { document.write(arr[i]+","); }
如果一个数组中,存放的元素本身也是一个数组,那么可以称之为是多维数组,二维数组就是再原数组中再存放数组。
//创建一个二维数组,使用for循环往数组中添加数据 // var arr = [[1,2,3],[4,5,6],[7,8,9]]; //先声明一个空数组,作为外面的大数组 var arr = new Array(); //使用for往大数组中添加小数组,循环几次,就添加几个 for (var i = 0; i < 5; i++) { arr[i] = new Array(); //里面的for循环往小数组中添加具体的值 for (var j = 0; j < 5; j++) { arr[i].push(i*j); } } //[ [0,0,0,0,0],[0,1,2,3,4],[0,2,4,6,8],[0,3,6,9,12],[0,4,8,12,16] ] //使用for循环遍历二维数组 for (var i = 0; i < arr.length; i++) { for (var j = 0; j < arr[i].length; j++) { document.write(arr[i][j]+","); } document.write("<br>"); }
字符串是一种基本数据格式,各种语言都支持,可以实现各种语言之间的通信。
对创建该对象的函数的引用 | |
var str = "hello"; var str1 = "world"; var str2 = 123; var newstr = str + str1; document.write(newstr+"<br>"); var newstr1 = "hello"+"world"+123; document.write(newstr1+"<br>"); var newstr2 = str + str1 + str2; document.write(newstr2+"<br>");
语法: 字符串.concat(字符串1,字符串2,....)
var str = "hello"; var str1 = "world"; var str2 = 123; var newstr = str.concat(str1,str2); document.write(newstr+"<br>"); var newstr1 = str.concat("world",123); document.write(newstr1+"<br>"); var newstr2 = str.concat("world"+123); document.write(newstr2+"<br>");
indexof()方法:从指定的索引位置开始,搜索子字符串在父字符串中第一次出现的位置。起始搜索位置没指定的话就从0开始。
var str = 'abcdefgabcdefg'; console.log(str.indexOf('a')); //0 console.log(str.indexOf('a',3)); //7 console.log(str.indexOf('def')); //3
lastindexof()方法:用法和indexof类似,不同的是,检索顺序从后向前,返回的是指定字符串最后出现的位置
console.log(str.lastIndexOf('a')); //7 console.log(str.lastIndexOf('a',3));//0 console.log(str.lastIndexOf('def'));//10
search()方法:检索字符串中指定的子字符串(或者是正则表达式),如果检索到了,返回第一个匹配的子字符串的起始位置,如果不成功,则会返回-1.
console.log(str.search('c')); //2 console.log(str.search('h')); //-1
match()方法:在字符串内检索指定的值(或者正则表达式),如果检索不到,会返回null,如果检索成功,会返回一个数组,这个数组里面存放,搜索的子字符串,索引值,父字符串
console.log(str.match('def')); //["def", index: 3, input: "abcdefgabcdefg", groups: undefined] console.log(str.match('h')); //null
substring():截取从传入参数的开始位置到结束位置-1处的所有字符。如果没有传入结束位置,那么表示截取到最后。
语法:字符串.substring(截取开始位置,截取结束位置)
var str = 'abcdefg'; console.log(str.substring(1,4)); //bcd console.log(str.substring(2)); //cdefg console.log(str.substring(-1)); //abcdefg
slice():用法和substring基本相同,不同的是,slice能传入负数,负数表示从后向前计算截取位置
console.log(str.slice(1,4)); //bcd console.log(str.slice(2)); //cdefg console.log(str.slice(2,-2)); //cde console.log(str.slice(-5,-2)); //cde console.log(str.slice(-2,-5)); //空
substr():从截取位置开始截取指定长度的字符,如果没有指定长度的值,那么就截取到最后。如果截取开始的值是负数,表示从后面向前计算
语法: 字符串.substr(截取的开始位置,length)
//console.log(str.substr(1,4)); //bcde //console.log(str.substr(2)); //cdefg //console.log(str.substr(2,-2)); //空 //console.log(str.substr(-2,2)); //fg
//求大字符串中小字符串出现的次数 //'javashizuiniubidewoaijava,javashizuiniubidewoaijava' //'java' //求java上上面字符串中出现的次数 //声明大字符串 var str1 = 'javashizuiniubidewoaijava,javashizuiniubidewoaijava'; //声明小字符串 var str2 = 'java'; //声明小字符串的长度 var smalllength = str2.length; //声明统计变量,出现的次数 var count = 0; for (var i = 0; i < str1.length; i++) { //for循环做截取,每次截取的内容为小字符串长度个数的字符 var newstr = str1.slice(i,i+smalllength); //判断截取出来的字符串和小字符串是否相等,如果相等,统计数量+1 if(newstr == str2){ count++; } } document.write(count);
replace()方法:传入2个参数,前面的是要被替换的子字符串,后面是要替换成为的子字符串,如果第一个参数传入的是子字符串,那么replace只将进行一次替换,返回经过一次替换以后的结果字符串。
语法:字符串.replace(要被替换的字符串,要替换成为的字符串)
var str = 'abcdeabcde'; console.log(str.replace('a','A'));
split()方法:用于将一个字符串分割成字符串数组,返回数组的最大长度一般不设置
语法:字符串.spilt(用于分割字符串的子字符串,返回数组最大的长度)
var str = "a|b|c|d|e"; console.log(str.split("|")); console.log(str.split("")); console.log(str.split("|",3)); //声明大字符串 var str1 = 'javashizuiniubidewoaijava,javashizuiniubidewoaijava'; //声明小字符串 var str2 = 'java'; var arr = str1.split(str2); var count = arr.length-1; document.write(count);
一个由字符序列形成的搜索模式,在文本搜索的时候,可以按照搜索模式搜索我们想要的内容。
匹配符:表示用于匹配某个或者某些字符,通过一对中括号括起来的内容,称之为"字符簇",表示的是一个范围。
[0-9] 表示匹配0-9中的任意一个数字一次 等同[\d]
[a-z0-9] 表示匹配a-z或者0-9中的 任意字符一次
[A-Za-z0-9] 表示匹配任意字母或者数字一次 等同[\w]
var str = '315h645616'; var reg = /[^0-9]/; document.write(str.search(reg));
{n} :子表达式匹配固定的n次,比如 {10} 表示匹配10次
{m,n} :子表达式匹配最少m次,最多n次, 比如 {1,5}表示最少匹配1次最多5次
var str = "123365266566"; var reg = /[\d]{11}/; document.write(str.search(reg));
定位符:定位符可以将一个正则表达式固定在一行的开始或者结束。
var str = '2020-9-29'; var reg = /^[\d]{4}-[\d]{1,2}-[\d]{1,2}$/; document.write(reg.test(str));
转义符:在正则表达式中,如果有特殊符号的,需要使用转义符(反斜杠\)进行转义。 如 [],*,+,/,.,^,$ 等特殊符号
var str = '15+5=20'; // var reg = /[\/]/; var reg = /[\+]/; document.write(reg.test(str));
var str = '15+5=20'; var reg = /[0-9]+/g; console.log(str.match(reg));
exec():检索字符串中正则表达式的匹配,返回一个数组,存放匹配结果
对象是一个以键值形式存储属性的集合,每个属性有特定的名称,以及与名称对应的值。
先声明一个类,使用new关键字来创建一个拥有独立内存区域和指向原型的对象。
//对象的声明 //创建一个User类 var User = function(id,name){ this.id = id; this.name = name; } //创建User类的实例化对象 var user1 = new User(1,"张三"); document.write(user1.name); var user2 = new User(2,'李四'); document.write(user2.name); //创建一个学生类,有学号、姓名、年龄三个属性 //实例化学生类,声明2个学生对象,并返回他们的属性值 var Student = function(sid,name,age){ this.sid = sid; this.name = name; this.age = age; } var stu1 = new Student(1001,'张三',20); document.write(stu1.age+"---"+stu1.name+"---"+stu1.sid);
var user1 = {id:1,name:'张三'}; var user2 = Object.create({id:2,name:'李四'}); document.write(user1.name); document.write("<br>"); document.write(user2.name);
对象的属性,用来描述对象的特征,分为属性名和属性值,在js中,属性可以动态的操作,比如,添加、删除、检测
// 添加属性 //声明一个空对象 var user = {}; //为对象添加3个属性 user.sid = 1001; user.name = '张三'; user['age'] = 20; document.write(user.sid); document.write("<br>"); document.write(user['name']); document.write("<br>"); //删除属性 delete user.name; document.write(user.name); document.write("<br>"); //检测属性 if('name' in user){ document.write("user有name属性"); }else{ document.write("user没有name属性"); }
var stu1 = {sid:1001,name:'张三',age:20}; stu1.show = function(sid,name,age){ document.write("我是"+stu1.name+",我今年"+stu1.age+"岁,学号是"+stu1.sid); } stu1.show();
//声明一个学生对象,属性有学号、姓名、年龄、所学课程 //有一个选课方法,方法的实现内容是,当学生选择一门课后,会把这门课加入到 //所学课程中。 //调用选课方法,传入几门课程,并把数据返回 var stu = {}; stu.id = 1001; stu.name = '张三'; stu.age = 20; stu.course = []; stu.chooseCourse = function(courseName){ stu.course.push(courseName); } stu.chooseCourse("JAVA"); stu.chooseCourse("MySQL"); stu.chooseCourse("HTML"); document.write("所学课程有:"+stu.course);
使用for in循环可以遍历处对象的键,然后可以使用键去访问对象的属性和方法。
//对象的遍历 for(key in stu){ document.write(key+":"+stu[key]); document.write("<br>"); }
函数是一组延迟动作集的定义,可以通过事件触发或者在其他脚本中进行调用。用帮助封装、调用代码。
//1,通过函数名声明,程序调用的时候执行 function fun1(){ document.write("我是函数fun1"); document.write("<br>"); } fun1(); //2,通过匿名函数赋值给变量,也需要调用才能执行 var fun2 = function(){ document.write("我是函数fun2"); document.write("<br>"); } fun2(); //3,通过new的方式来声明,不需要调用,直接执行 var fun3 = new Function(document.write("我是函数fun3"));
//无参的函数 function fun1(){ document.write("我是函数fun1"); document.write("<br>"); } fun1(); //有限个数的参数 function fun2(a,b){ document.write("传入的2个参数为,a="+a+",b="+b); document.write("<br>"); } fun2(); fun2(3,5); fun2("hello","world"); //不定长参数 function fun3(...param){ len = param.length; //返回传入参数的长度 for (var i = 0; i < len; i++) { document.write("参数"+i+"="+param[i]); document.write("<br>"); } } fun3(1,3,5,7,9); fun3(1,2,3,4,5,6,7,8,9);
对含参的函数来说,可以为参数设置默认值,如果没有传入此参数,那么将按照默认值的参与表达式的运算,传入值则按照实际的值运算。
//参数的默认值 function fun1(name,age){ name = name||"貂蝉"; age = age||20; document.write("你好,我是"+name+",我今年"+age+"岁"); } fun1(); document.write("<br>"); // fun1('吕布'); fun1(25); document.write("<br>"); fun1("关羽",30);
//返回值为普通值 function fun1(a,b){ return a+b; } var a = fun1(3,5); document.write(a); document.write("<br>"); //返回值是数组 function fun2(a,b){ arr = []; arr.push(a*2); arr.push(b/3); return arr; } var b = fun2(3,6); document.write(b); document.write("<br>"); //返回值是对象 function fun3(id,name){ obj = {}; obj.id = id; obj.name = name; return obj; } var c = fun3(1001,'赵云'); console.log(c); document.write(c.name);
将参数的值传递给函数,函数在进行调用时候会复制这个值,然后将复制的值在函数中进行运算,如果这个被复制的值在函数体中发生了改变,不会影响原值。
将参数的内存地址传给函数进行调用,当此参数在函数体中被改变,原值也会发生改变。
//传值调用 function fun1(str){ str = 'hello'; } var a = '你好'; fun1(a); document.write(a); document.write("<br>"); //传地址调用 function fun2(person){ person.name = '李四'; } var b = {name:'张三'}; fun2(b); document.write(b.name);
传函数调用:函数既可以作为返回值返回,也可以作为一个参数传入另一个函数中被调用。
//传函数调用 function add(a,b){ return a+b; } function chengfa(a,b){ return a*b; } function operation(a,b,fun){ return fun(a,b); } var rs = operation(3,5,add); document.write(rs); var rs1 = operation(4,6,chengfa); document.write(rs1);
var a = 3.1; var b = 3.9; //document.write("a向上取整后值为:"+Math.ceil(a)+"<br>"); //document.write("b向下取整后值为:"+Math.floor(b)+"<br>"); //document.write("a和b的最小值为:"+Math.min(a,b)+"<br>"); //document.write("a和b的最小值为:"+Math.max(a,b)+"<br>"); //document.write("2的3次方:"+Math.pow(2,3)+"<br>"); //document.write("a四舍五入后值为:"+Math.round(a)+"<br>"); //document.write("9开平方后值为:"+Math.ceil(a)+"<br>"); //随机数 for (var i = 0; i < 5; i++) { document.write(Math.random()+"<br>"); } //求1-10之间的随机整数 for (var i = 0; i < 5; i++) { document.write(Math.ceil(Math.random()*10)+"<br>"); } //求15-30之间的随机数 floor(random()*(b-a+1) +a) for (var i = 0; i < 5; i++) { document.write(Math.floor(Math.random()*16+15)+"<br>"); }
// var date = new Date(); //声明当前时间 var date = new Date("2020-10-08 15:15:15");//自定义时间 document.write(date); document.write("<br>"); document.write("获取年份:"+date.getFullYear()+"<br>"); document.write("获取月份:"+(date.getMonth()+1)+"<br>"); document.write("获取日:"+date.getDate()+"<br>"); document.write("获取周:"+date.getDay()+"<br>"); document.write("获取毫秒值:"+date.getTime()+"<br>"); document.write("获取时:"+date.getHours()+"<br>"); document.write("获取分:"+date.getMinutes()+"<br>"); document.write("获取秒:"+date.getSeconds()+"<br>"); document.write("获取日期:"+date.toLocaleDateString()+"<br>"); document.write("获取时间:"+date.toLocaleTimeString()+"<br>"); document.write("获取日期时间:"+date.toLocaleString()+"<br>");
按照指定的周期调用函数或者计算表达式。在这个函数中,会不停的调用函数,直到使用clearInterval()或者页面被关闭
setInterval(函数,毫秒值) 表示每隔多少毫秒调用函数
<body> <font id="fYear"></font>年 <font id="fMonth"></font>月 <font id="fDate"></font>日 <font id="fTime"></font> </body>
<script type="text/javascript"> //在页面返回当前的时间,并且随着系统时间一起跳动 var fYear,fMonth,fDate,fTime; window.onload = function(){ fYear = document.getElementById("fYear") fMonth = document.getElementById("fMonth") fDate = document.getElementById("fDate") fTime = document.getElementById("fTime") move(); } function move(){ date = new Date(); fYear.innerHTML = date.getFullYear(); fMonth.innerHTML = date.getMonth()+1; fDate.innerHTML = date.getDate(); //判断如果秒数小于10 ,那么在秒之前加个0 t_seconds = date.getSeconds(); t_seconds = t_seconds<10 ? ('0'+t_seconds) : t_seconds ; //显示时间 fTime.innerHTML = date.getHours()+":"+date.getMinutes()+':' +t_seconds+",今天是周"+date.getDay(); setInterval(move,1000) } </script>
setTimeout() 在指定的毫秒数以后调用函数或者表达式
setTimeout(函数,毫秒数) 在指定毫秒数以后调用函数
<body> <input type="button" value="点击移动" οnclick="move()"> <div id="mdiv" style="left: 100px;top: 100px;"></div> </body>
<style type="text/css"> #mdiv{ width: 100px; height: 100px; background-color: blue; position: absolute; } </style>
<script type="text/javascript"> //实现点击按钮移动盒子 var mdiv; mdiv = document.getElementById('mdiv'); //获取div盒子的节点 function move(){ mdiv.style.left = parseInt(mdiv.style.left) +10 +'px'; mdiv.style.top = parseInt(mdiv.style.top) +10 +'px'; setTimeout(move,100); } </script>
setTimeout()和setInterval()的主要区别:
setTimeout()只运行一次,也就是说,当达到设定的时间后,就触发运行指定的代码,运行完之后就结束,如果想再次执行同样的函数,可以在函数体内再次调用setTimeout() 回调自身函数
setInterval()时循环执行的,每达到指定的时间间隔就执行相应的函数或表达式
location对象 Location 对象包含有关当前 URL 的信息。
navigator对象 Navigator 对象包含有关浏览器的信息。
screen对象 Screen 对象包含有关客户端显示屏幕的信息。
history对象 对象包含用户(在浏览器窗口中)访问过的 URL。
<script type="text/javascript"> window.alert("警告"); </script>
<script type="text/javascript"> window.confirm("确认消息"); </script>
<script type="text/javascript"> window.prompt('请输入信息','张三'); </script>
<body> <button type="button" οnclick="fun_prompt()">点击</button> <p id="demo"></p> </body> <script type="text/javascript"> function fun_prompt(){ var txt; var person = prompt("请输入你的姓名:",'张三'); if(person == null || person ==''){ txt = '用户取消输入' }else{ txt = '你好,'+person+'欢迎光临' } document.getElementById('demo').innerHTML = txt; } </script>
<script type="text/javascript"> var w = window.innerWidth; var h = window.innerHeight; alert(w+":"+h); </script>
<script type="text/javascript"> function win_open(){ window.open('http://www.baidu.com') } </script>
<body> <button type="button" οnclick="win_close()">点击关闭</button> </body> <script type="text/javascript"> function win_close(){ window.close(); } </script>
<body> <button type="button" οnclick="win_resize()">点击调整</button> </body> <script type="text/javascript"> function win_resize(){ window.resizeTo(200,200) } </script>
<body> Hello World!! </body> <script type="text/javascript"> window.onload = function(){ document.bgColor = 'blue'; document.fgColor = 'red'; } </script>
<script type="text/javascript"> document.write("当前页面的URL是:" + window.location.href +'<br>'); document.write("当前页面的域名是:" + window.location.hostname +'<br>'); document.write("当前页面的路径是:" + window.location.pathname +'<br>'); document.write("当前页面的web协议是:" + window.location.protocol +'<br>'); document.write("当前页面的端口号是:" + window.location.port +'<br>'); </script>
<body> <a href="demo1.html">跳转到demo1</a> <button type="button" οnclick="forward()">前进</button> </body> <script type="text/javascript"> function forward(){ window.history.forward(); } </script>
<body> <a href="demo2.html">跳转到demo2</a> <button type="button" οnclick="back()">后退</button> </body> <script type="text/javascript"> function back(){ window.history.back(); } </script>
<body> <button type="button" οnclick="go()">后退2步</button> </body> <script type="text/javascript"> function go(){ window.history.go(-2); //后退2步 } </script>
文档对象模型 Document Object Model 属于BOM的一部分,用来操作BOM中的核心对象document
js通过DOM能够改变页面中所有的HTML元素,HTML属性、CSS样式
document.getElementsByClassName(class值)
document.getElementsByTagName(标签名)
document.getElementsByName(name属性值)
<body> <p id="mydiv_html"></p> <p id="mydiv_text"></p> <hr> <div class="classdiv"></div> <div class="classdiv"></div> <div class="classdiv"></div> <hr> <div name='namediv'></div> <div name='namediv'></div> <div name='namediv'></div> <hr> <span></span> <br> <span></span> <br> <span></span> <br> </body>
JS代码 <script type="text/javascript"> window.onload = function(){ //通过id获取 mydiv = document.getElementById('mydiv_html'); mydiv2 = document.getElementById('mydiv_text'); mydiv.innerHTML = '<b>我是通过id获取节点信息添加的</b>'; mydiv2.innerText = '<b>我是通过id获取节点信息添加的</b>'; //class获取 classdiv = document.getElementsByClassName('classdiv'); for (var i = 0; i < classdiv.length; i++) { classdiv[i].innerHTML = '通过class获取节点信息'+i; } //通过name获取 namediv = document.getElementsByName('namediv'); for (var i = 0; i < namediv.length; i++) { namediv[i].innerHTML = '通过name获取节点信息'+i; } //通过标签名获取 tag_span = document.getElementsByTagName('span'); for (var i = 0; i < tag_span.length; i++) { tag_span[i].innerHTML = '通过tagname获取节点信息'+i; } } </script>
通过class、name、tagname获取节点的时候,获取的结果可能是多个,所以element后面要加s。它们获取的节点信息将以伪数组的形式存在,虽然不具备数组的方法,但是可以遍历伪数组。即使获取的节点信息只有一个,仍然以伪数组的形式存在。
setAttribute(属性名,属性值) 给节点设置一个属性名,同时给一个属性值
<body> <div id="tb_width"></div> <table id="mytable" border="1" width="80%" align="center"> <tr bgcolor="red"> <td>aaaa</td> <td>aaaa</td> <td>aaaa</td> </tr> <tr> <td>bbbb</td> <td>bbbb</td> <td>bbbb</td> </tr> <tr > <td>cccc</td> <td>cccc</td> <td>cccc</td> </tr> <tr> <td>dddd</td> <td>dddd</td> <td>dddd</td> </tr> <tr> <td>eeee</td> <td>eeee</td> <td>eeee</td> </tr> </table> </body>
<script type="text/javascript"> window.onload = function(){ mytable = document.getElementById('mytable'); //获取表格中的tr标签信息 trs = mytable.getElementsByTagName('tr'); flag = true; for (var i = 0; i < trs.length; i++) { if(i%2==0){ trs[i].setAttribute('bgcolor','#cccccc'); } } ww = mytable.getAttribute('width'); document.getElementById('tb_width').innerHTML = ww; } </script>
document.createElement('h3') 创建h3标签
document.createTextNode(文本内容) 创建文本内容节点
document.createAttribute('class') 创建class属性
element.appendChild(节点信息) 往父节点添加一个子节点
element.insertBefore(新节点,老节点) 往一个元素内部的老节点之前添加一个新节点
<body> <table id="mytable" border="1" width="80%" align="center"> </table> </body>
<style type="text/css"> .td_class{ background: skyblue; } </style>
<script type="text/javascript"> window.onload = function(){ //获取表格节点 mytable = document.getElementById('mytable'); flag = true; //使用嵌套for循环来给表格加行和列 for (var i = 0; i < 4; i++) { //外层循环加行数 tr = document.createElement('tr'); //创建tr标签 for (var j = 0; j < 5; j++) { //内层for循环加列数td td = document.createElement('td'); //创建td标签 txt = document.createTextNode('文本内容'+j);//创建td中的文本 //判断给表格单元格隔一个格子换色 if(flag){ class1 = document.createAttribute('class');//创建属性 class1.value = 'td_class';//给创建好的属性加值 td.setAttributeNode(class1);//把属性添加给td //td.setAttribute('class','td_class'); flag = false; }else{ flag = true; } td.appendChild(txt); //先使用td添加文本内容 tr.appendChild(td); //再使用tr添加td } mytable.appendChild(tr); //使用table添加tr } } </script>
elemet.removeChild(节点值) 删除当前节点下指定的子节点,删除成功会返回被删除的该节点,否则返回null
<body> <table border="1" width="80%" align="center"> <tr> <td>aaaa</td> <td>aaaa</td> <td>aaaa</td> <td>aaaa</td> <td><a οnclick="del(this)" href="#">删除</a></td> </tr> <tr> <td>bbbb</td> <td>bbbb</td> <td>bbbb</td> <td>bbbb</td> <td><a οnclick="del(this)" href="#">删除</a></td> </tr> <tr> <td>cccc</td> <td>cccc</td> <td>cccc</td> <td>cccc</td> <td><a οnclick="del(this)" href="#">删除</a></td> </tr> <tr> <td>dddd</td> <td>dddd</td> <td>dddd</td> <td>dddd</td> <td><a οnclick="del(this)" href="#">删除</a></td> </tr> <tr> <td>eeee</td> <td>eeee</td> <td>eeee</td> <td>eeee</td> <td><a οnclick="del(this)" href="#">删除</a></td> </tr> </table> </body>
<script type="text/javascript"> function del(thisa){ //通过点击的a标签找到父节点td,然后再找到td的父节点tr tr = thisa.parentNode.parentNode; //通过tr找到table的节点信息 table = tr.parentNode; //使用table删除tr table.removeChild(tr); } </script>
element.children //获取子节点,只能获取html节点
element.childNodes //获取当前元素的所有子节点,包括文本、HTML、属性节点..
element.firstChild //返回当前元素的第一个子节点
element.nextElementSibling //获取当前元素的下一个同级元素,没有返回null
element.previousElementSibling //获取当前元素的上一个同级元素
element.innerHTML // 返回元素的所有文本,包括HTML代码
element.innerText //返回当前元素的自身及子代所有文本值,只有文本内容,不含html代码
element.style.color = 'red' //设置颜色的字体颜色为红色
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> .menu{ cursor: pointer; } </style> <script type="text/javascript"> function dian(thisa){ nextnode = thisa.nextElementSibling; //获取下一个节点信息 if(nextnode.style.display == 'none'){ nextnode.style.display = 'block'; }else{ nextnode.style.display = 'none'; } } </script> </head> <body> <li class="menu" οnclick="dian(this)">导航一</li> <li style="display: none;"> <a href="">菜单1</a> <br> <a href="">菜单2</a> <br> <a href="">菜单3</a> <br> <a href="">菜单4</a> <br> <a href="">菜单5</a> <br> </li> <li class="menu" οnclick="dian(this)">导航一</li> <li style="display: none;"> <a href="">菜单6</a> <br> <a href="">菜单7</a> <br> <a href="">菜单8</a> <br> <a href="">菜单9</a> <br> <a href="">菜单10</a> <br> </li> <li class="menu" οnclick="dian(this)">导航一</li> <li style="display: none;"> <a href="">菜单11</a> <br> <a href="">菜单12</a> <br> <a href="">菜单13</a> <br> <a href="">菜单14</a> <br> <a href="">菜单15</a> <br> </li> </body> </html>
指的是在浏览器窗体中或HTML元素上发生的,可以触发JS代码的块运行的行为
窗口事件 :用户与页面其他元素交互时发生的事件,如,页面加载、窗口大小改变、滚动页面..
如 window.onload = function(){ }
<script type="text/javascript"> window.onload = function(){ var mydiv = document.getElementById('mydiv'); alert('页面加载完,mydiv内容是:'+mydiv.innerHTML); } </script> <body> <div id="mydiv">这是一个文本内容</div> </body>
将浏览器窗口调整到一个新的高度或者宽度的时候,可以触发resize事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> html,body{ /*设置宽高,js中才能获取到值*/ height: 100%; width: 100%; } </style> </head> <script type="text/javascript"> function winresize(){ winWidth = document.body.clientWidth; //获取body宽度 winHeight = document.body.clientHeight; //获取body高度 alert('窗口发生改变,宽为:'+winWidth+',高为:'+winHeight); } </script> <body οnresize="winresize()"> </body> </html>
scroll事件:文或者浏览器窗口被滚动期间,会触发scroll事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> html,body{ width: 100%; height: 100%; } </style> </head> <script type="text/javascript"> function winScroll(){ text = document.getElementById('text'); //获取滚动距离,并且把距离写入文档中 text.innerText = '滚动条滚动到了'+ document.documentElement.scrollTop+'px'; text.style.top = document.documentElement.scrollTop + 'px'; } </script> <body οnscrοll="winScroll()"> <div style="height: 300%;"></div> <span id="text" style="position: absolute;top: 10px;" >滚动条滚动到了0px</span> </body> </html>
如,文本框,点击文本框可以在文本框中输入文字,其实就是文本框获得了焦点
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <script type="text/javascript"> var note; function myfocus(notename){ //获取焦点的函数 note = document.getElementById(notename); note.innerText = "获取焦点,开始输入"; } function myblur(notename){ //失去焦点的函数 note = document.getElementById(notename); note.innerText = "失去焦点,开始判断"; } </script> <body> <input type="text" name='username' οnfοcus="myfocus('unote')" οnblur="myblur('unote')"> <span id="unote"></span> <br> <input type="text" name='password' οnfοcus="myfocus('pnote')" οnblur="myblur('pnote')"> <span id="pnote"></span> </body> </html>
主要是鼠标操作所触发的事件 ,单击、双击、单击按下、单击抬起、鼠标滑过
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> html,body{ width: 100%; height: 100%; } </style> </head> <script type="text/javascript"> function dian(e){ dianX = e.clientX; //获取点击坐标横向 dianY = e.clientY; //获取点击坐标纵向 alert('x:'+dianX+',y:'+dianY); } </script> <body οnclick="dian(event)"> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> </head> <script type="text/javascript"> function showmenu(e){ e.style.height = 180+'px'; } function hidemenu(e){ e.style.height = 30+'px'; } </script> <body> <div οnmοuseοver="showmenu(this)" οnmοuseοut="hidemenu(this)" style="width: 120px;height: 30px;border: 1px solid blue; overflow: hidden;background: #cccccc;"> <table> <tr> <td>下拉菜单</td></tr> <tr> <td>菜单1</td></tr> <tr> <td>菜单2</td></tr> <tr> <td>菜单3</td></tr> <tr> <td>菜单4</td></tr> <tr> <td>菜单5</td></tr> </table> </div> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> html,body{ width: 100%; height: 100%; } #dd{ width: 120px; height: 120px; background: blue; position: absolute; } </style> </head> <script type="text/javascript"> var dd; //获取盒子的节点信息 var flag = false; function ondown(){ //鼠标按下以后,才能移动,获取移动节点信息 dd = document.getElementById('dd'); flag = true; } function onmove(e){ //移动的时候执行的函数 if(flag){ dd.style.left = e.clientX-60+'px'; dd.style.top = e.clientY-60+'px'; } } function onup(){ flag = false; } </script> <body οnmοusemοve="onmove(event)"> <div id="dd" οnmοusedοwn="ondown()" οnmοuseup="onup()" style="top: 120px;left: 80px;"></div> </body> </html>
keydown :当用户按下键盘上的任意键时触发,按住不放,重复触发
keypress:当用户按下键盘上的字符键时触发,按住不放,重复触发
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> html,body{ height: 100%; width: 100%; } </style> </head> <script type="text/javascript"> var tank = {}; var movestate,attchstate; window.onload = function(){ tank['37'] = '左移'; tank['38'] = '上移'; tank['39'] = '右移'; tank['40'] = '下移'; tank['32'] = '开火'; movestate = document.getElementById('movestate'); attchstate = document.getElementById('attchstate'); } function keydown(e){ //键盘按下的函数 keycode = e.keyCode; //获取按键的编码 if(keycode !=32&&tank[keycode]){ movestate.innerHTML = tank[keycode]; //获取keycode值对应的移动效果 } if(keycode == 32){ attchstate.innerHTML = tank[keycode]; } } function keyup(e){ //键盘抬起 keycode = e.keyCode; //获取按键的编码 if(keycode !=32&&tank[keycode]){ movestate.innerHTML = '静止'; //把节点内容恢复为静止 } if(keycode == 32){ attchstate.innerHTML = ''; } } </script> <body οnkeydοwn="keydown(event)" οnkeyup="keyup(event)"> 坦克运行的状态: <span id="movestate">静止</span> <br> 坦克攻击的状态: <span id="attchstate"></span> </body> </html>
JQuery是JavaScript的函数库,包含以下功能 :HTML元素的选取、HTML元素的操作、CSS操作、HTML事件函数、JS的特效动画、HTML中DOM遍历修改、AJAX。。。
<script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script>
<script type="text/javascript"> //$(document).ready(function(){//jquery 代码引入语句 // alert('hello,jquery!!!') //}) //简写方式 $(function(){ alert('hello,jquery!!!'); }) </script>
Jquery的入口函数是再HTML所有标签(DOM)都加载完之后执行
JavaScript的window.onload是HTML所有内容加载完(包括外部的图片),才会执行
如: $("#id值") == document.getElementById()
$(" ") 可以看作是一个函数,$是函数名称,后面括的内容其实是函数的参数 传递
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div{ width: 100px; height: 100px; background-color: blue; float: left; margin: 5px; padding: ; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="test0"> <p>id = test0</p> <p>js选中</p> </div> <div id="test1"> <p>id = test1</p> <p>jquery选中</p> </div> <div id="test2"> <p>id = test2</p> <p>未选中</p> </div> </body> <script type="text/javascript"> //使用原生JS操作添加样式 window.onload = function(){ var test0 = document.getElementById('test0'); test0.style.border = '3px solid red'; //给节点加了边框样式 } </script> <script type="text/javascript"> //使用Jquery操作添加样式 $(function(){ $("#test1").css('border','3px solid orange'); }) </script> </html>
语法: $(".class值") 表示选取指定class值的元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p class="p1"> p-1</p> <p class="p1"> p-2</p> <p class="p2"> p-3</p> <div class="d1">div-1</div> <div class="d1">div-2</div> <div class="d2">div-3</div> </body> <script type="text/javascript"> //通过原生JS获取 window.onload = function(){ var p1 = document.getElementsByClassName("p1"); p1[1].style.border = '3px solid red'; var p2 = document.getElementsByClassName("p2"); p2[0].style.border = '3px solid blue'; } </script> <script type="text/javascript"> //通过jquery获取 $(function(){ $(".d1").css('border','3px solid orange'); $(".d2").css('border','3px solid green'); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p>p-1</p> <p>p-2</p> <div>div-1</div> <div>div-2</div> </body> <script type="text/javascript"> //原生写法 window.onload = function(){ var p = document.getElementsByTagName('p'); p[0].style.border = '3px solid red'; } </script> <script type="text/javascript"> //jquery写法 $(function(){ $("div").css('border','3px solid blue'); }) </script> </html>
$("选择器:odd") 选择奇数索引、偶数行的元素,索引从0计算
$("选择器:even") 选择偶数索引、奇数行的元素,索引从0计算
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul> <li>第1行元素,索引是0</li> <li>第2行元素,索引是1</li> <li>第3行元素,索引是2</li> <li>第4行元素,索引是3</li> <li>第5行元素,索引是4</li> <li>第6行元素,索引是5</li> <li>第7行元素,索引是6</li> <li>第8行元素,索引是7</li> <li>第9行元素,索引是8,最后一行</li> </ul> </body> <script type="text/javascript"> $(function(){ $("li:first").css('color','red'); //选择第一行 $("li:last").css('color','blue');//选择最后一行 $("li:odd").css('background','orange');//选择偶数行 $("li:even").css('background','yellow');//选择奇数行 $("li:eq(3)").css('font-size','40px'); //选择索引未为3 $("li:gt(7)").css('font-size','60px');//选择索引大于7 $("li:lt(3)").css('font-size','80px')//选择索引小于3 }) </script> </html>
$("[属性名!='值']") 匹配属性名不等于特定值的元素
$("[属性名^='值']") 匹配属性值以特定值开头的元素
$("[属性名$='值']") 匹配属性值以特定值结尾的元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div class="div" name="div1">div-1</div> <div class="div" name="div2">div-2</div> <div class="div" name="div3">div-3</div> <a href="http://www.baidu.com">连接到百度</a> <br> <a href="http://www.taobao.cn">连接到淘宝</a> <br> <a href="www.qq.com">连接到腾讯</a> <br> </body> <script type="text/javascript"> //属性选择器 $(function(){ $('div[name]').css('color','red'); //选择有name属性的 //选择有name属性并且指定值的元素 $('div[name=div2]').css('font-size','40px'); //选择有name属性并且指定值不等于某值的元素 $('div[name!=div3]').css({'background':'#cccccc','border':'3px solid red'}); //以指定值开头 $("a[href^=www]").css('color','orange'); //以指定值结尾 $("a[href$=cn]").css('color','red'); //包含某个值 $("a[href*=baidu]").css('font-size','40px'); }) </script> </html>
语法 : $("选择器1 选择器2") 选择选择器1的后代选择器2
语法:$("选择器1>选择器2") 选择选择器1的子代选择器2
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul id="test"> <li>Li-1</li> <li>Li-2</li> <li>Li-3 <ul> <li>Li-3-1</li> <li>Li-3-2</li> <li>Li-3-3</li> </ul> </li> </ul> </body> <script type="text/javascript"> $(function(){ //后代选择器 //$('#test li').css('border','3px solid red'); //子代选择器 $('#test>li').css('border','3px solid blue'); }) </script> </html>
<!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>可见性过滤选择器</title> <style type="text/css"> #txt_show {display:none; color:#00C;} #txt_hide {display:block; color:#F30;} </style> </head> <body> <p id="txt_hide">点击按钮,我会被隐藏哦~</p> <p id="txt_show">隐藏的我,被显示了,嘿嘿^^</p> <input name="show" type="button" value="显示隐藏的P元素" id="show"/> <input name="hide" type="button" value="隐藏显示的P元素" id="hide" /> <script src="js/jquery-1.12.4.js"></script> <script> $(function(){ //点击#show,隐藏的p显示 $("#show").click(function(){ $("p:hidden").show(); }) //点击#hide,显示的p隐藏 $("#hide").click(function(){ $("p:visible").show(); }) }); </script> </body> </html>
$("选择器").each(function(index){this}) 选择器对象的遍历
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p class="p1">段落1</p> <p class="p1">段落2 <a href="">段落2.1</a> </p> <p class="p2">段落3</p> </body> <script type="text/javascript"> $(function(){ //each的使用 $('.p1').each(function(index){ alert(this); }) }) </script> </html>
$("选择器").not() 匹配选择器中去除了某个或者某几个元素
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p class="p1">段落1</p> <p class="p1" id="c2">段落2 <a href="" id="a1">段落2.1</a> <a href="">段落2.2</a> </p> <p class="p2">段落3</p> <p class="p3">段落4</p> </body> <script type="text/javascript"> $(function(){ //find 使用 //$('.p1').find("#a1").css("border",'3px solid red'); //not 使用 //$('.p1').not('#c2').css("border",'3px solid blue'); //add使用 $('.p2').add('.p3').css("border",'3px solid blue'); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul id="test"> <li>段落1</li> <li>段落2</li> <li>段落3</li> <li>段落4</li> <li>段落5</li> </ul> </body> <script type="text/javascript"> $(function(){ //使用each遍历添加title $('#test li').each(function(index){ this.title = '我是增加的第'+(index+1)+'个title属性'; }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p id="test"> 床前明月光</p> <button type="button">点击显示文本内容</button> </body> <script type="text/javascript"> $(function(){ $('button').click(function(){ //给按钮加上点击事件 alert("文本内容:"+$('#test').text()) }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p title="p标签的title属性值"> 床前明月光</p> <button type="button">点击显示文本内容</button> </body> <script type="text/javascript"> $(function(){ $('button').click(function(){ //给按钮加上点击事件 alert($('p').attr('title'));//弹出p标签的title属性值 }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul> <li>锄禾日当午</li> <li>汗滴禾下土</li> </ul> <button type="button">点击创建节点</button> </body> <script type="text/javascript"> $(function(){ //创建节点 var $li1 = $("<li>谁知盘中餐</li>"); var $li2 = $("<li>粒粒皆辛苦</li>"); $('button').click(function(){ //添加节点 $('ul').append($li1); $('ul').append($li2); }) }) </script> </html>
A . append (B) 向A中添加B,添加再已有节点之后
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul> <li>目录1</li> <li>目录2</li> <li>目录3</li> <li>目录4</li> </ul> <button type="button">点击添加节点</button> </body> <script type="text/javascript"> $(function(){ //给button添加点击事件 $('button').click(function(){ //添加节点 //$('ul').append($('<li>目录5</li>')); //append写法 $('<li>目录5</li>').appendTo($('ul')); //appendTo写法 }) }) </script> </html>
A. prepend (B) 向A中添加B,添加已有节点之前
A. prependTo (B) 把A添加到B中已有节点之前
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul> <li>目录1</li> <li>目录2</li> <li>目录3</li> <li>目录4</li> </ul> <button type="button">点击添加节点</button> </body> <script type="text/javascript"> $(function(){ //给button添加点击事件 $('button').click(function(){ //添加节点 //$('ul').prepend($('<li>目录5</li>')); //perpend写法 $('<li>目录5</li>').prependTo($('ul')); //prependTo写法 }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <h1>标题1</h1> <h2>标题2</h2> <h3>标题3</h3> <button type="button">点击添加节点</button> </body> <script type="text/javascript"> $(function(){ //给button添加点击事件 $('button').click(function(){ //使用after添加同级节点 $('h2').after('<p>添加的p标签</p>'); //在h2的后面加标签p $('<p>添加的p标签</p>').insertAfter($('h3')); //使用before添加 $('h1').before('<div>添加的div标签</div>'); $('<div>添加的div标签</div>').insertBefore($('h2')); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div{ width: 300px; height: 100px; margin: 10px; background-color: aquamarine; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="div1"> <p>div1中的p标签1</p> <p>div1中的p标签2</p> </div> <div id="div2"> <p>div2中的p标签1</p> <p>div2中的p标签2</p> </div> <button id="btn1" type="button">点击使用remove</button> <button id="btn2" type="button">点击使用empty</button> </body> <script type="text/javascript"> $(function(){ $("#btn1").click(function(){ $('#div1').remove(); //使用remove会把自身删除 }); $("#btn2").click(function(){ $('#div2').empty();//使用empty只会删除子元素,保留自身标签 }); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p>床前明月光</p> <button type="button">点击按钮,复制p标签,并且追加到body后</button> </body> <script type="text/javascript"> $(function(){ $("button").click(function(){ //克隆p元素,并且追加到body中 $('body').append($('p').clone()); }); }) </script> </html>
A.replaceWith(B) 将匹配的元素A替换成指定元素B
A.replaceAll(B) 将匹配的元素B替换成所有选择器匹配元素A
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul> <li>锄禾日当午</li> <li>汗滴禾下土</li> </ul> <button type="button">点击按钮替换内容</button> </body> <script type="text/javascript"> $(function(){ $('button').click(function(){ //点击事件 //替换 replaceWith //$('ul li:eq(0)').replaceWith("<li>谁知盘中餐</li>"); //replaceAll $("<li>谁知盘中餐</li>").replaceAll($('ul li:eq(0)')); }); }) </script> </html>
事件名称表示需要绑定的事件、如click、scroll、mouseup
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> span{ display: none; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <input type="text"> <p>单击输入框获得焦点</p> <span>请输入你的电话号码</span> </body> <script type="text/javascript"> $(function(){ //使用bind方法给input绑定一个focus事件 //$('input').bind('focus',function(){ // //事件的内容是让span显示 // $('span').show(); //}) //简写的绑定方式 $('input').focus(function(){ //事件的内容是让span显示 $('span').show(); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p>如果你点击我,就会弹出弹框~</p> </body> <script type="text/javascript"> $(function(){ //单击事件 //$('p').click(function(){ //给p标签加上单击事件 // alert("调用了click方法"); //}) //鼠标双击事件 $('p').dblclick(function(){ //给p标签加上单击事件 alert("调用了dblclick方法"); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p id="p1"> 第一行:鼠标滑过此处,第二行内容变色</p> <p id="p2"> 第二行内容</p> </body> <script type="text/javascript"> $(function(){ //鼠标悬停,第二行背景色变为红色 $('#p1').mouseenter(function(){ $('#p2').css('background','red'); }); //鼠标离开,第二行背景色变回白色 $('#p1').mouseleave(function(){ $('#p2').css('background','white'); }); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p id="p1"> 第一行:鼠标滑过此处,第二行内容变色</p> <p id="p2"> 第二行内容</p> </body> <script type="text/javascript"> $(function(){ 鼠标悬停,第二行背景色变为红色 //$('#p1').mouseenter(function(){ // $('#p2').css('background','red'); //}); 鼠标离开,第二行背景色变回白色 //$('#p1').mouseleave(function(){ // $('#p2').css('background','white'); //}); //使用hover()实现 $("#p1").hover( function(){ $('#p2').css('background','red'); }, function(){ $('#p2').css('background','white'); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> 请随意输入:<input type="text"> <p>当你输入的时候,实现输入框背景色变化的效果</p> </body> <script type="text/javascript"> $(function(){ //键盘按下 $("input").keydown(function(){ $("input").css('background','red'); }); //键盘抬起 $("input").keyup(function(){ $("input").css('background','yellow'); }); }) </script> </html>
alt、ctrl、shift、esc不会触发keypress
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> 请随意输入:<input type="text"> <p>按键的次数: <span>0</span></p> </body> <script type="text/javascript"> i = 0; $(function(){ $("input").keypress(function(){ //绑定keypress事件 //触发 事件给变量加1,并且把内容返回到span节点 $("span").text(i+=1); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <form action="" > 姓名: <input type="text" name="name"> <br> 年龄: <input type="text" name="age"> <input type="submit" value="提交"/> </form> </body> <script type="text/javascript"> $(function(){ //submit的使用 $("form").submit(function(){ alert("提交成功!!"); }) }) </script> </html>
change() 当文本内容发生改变的时候,触发change事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> 姓名: <input type="text" name="name"> <br> <p>在文本框中输入内容,然后按下回车键</p> </form> </body> <script type="text/javascript"> $(function(){ //change的使用 $("input").change(function(){ alert("文本已修改!!"); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> 姓名: <input type="text" name="name"> <br> 年龄: <input type="text" name="age"> </form> </body> <script type="text/javascript"> $(function(){ // focus的使用,获得焦点 $("input").focus(function(){ $(this).css('background','blue'); }); //blur使用失去焦点 $("input").blur(function(){ $(this).css('background','red'); }); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div{ width: 100px; height: 100px; overflow: scroll; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div> 好好学习!!天天玩游戏!! 好好学习!!天天玩游戏!! 好好学习!!天天玩游戏!! 好好学习!!天天玩游戏!! 好好学习!!天天玩游戏!! </div> <p>滚动了: <span>0</span>次</p> </body> <script type="text/javascript"> i = 0; $(function(){ //scroll事件触发 $('div').scroll(function(){ $('span').text(i+=1); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p>窗口重置了 <span>0</span>次</p> <p>调整窗口大小试一试</p> </body> <script type="text/javascript"> i = 0; $(function(){ $(window).resize(function(){ $('span').text(i+=1); }) }) </script> </html>
当页面上出现多个元素嵌套的时候,绑定同一个事件,当我们触发内部元素的事件,也会触发外部元素的相同事件。这个称为事件冒泡
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="content"> 外部的div <span>span元素</span> 外部的div </div> <div id="msg"></div> </body> <script type="text/javascript"> $(function(){ //内部的span一个事件 $('span').click(function(){ var txt = $("#msg").html()+"<p>内部的span被点击</p>"; $("#msg").html(txt); }); //外部的div事件 $('#content').click(function(){ var txt = $("#msg").html()+"<p>外部的div被点击</p>"; $("#msg").html(txt); }); //内部的span一个事件 $('body').click(function(){ var txt = $("#msg").html()+"<p>body被点击</p>"; $("#msg").html(txt); }); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <form action="#" > ursename: <input id="username" type="text"> <span></span><br> <input id="sub" type="submit" value="提交"/> </form> </body> <script type="text/javascript"> $(function(){ $("#sub").click(function(){ var username = $("#username").val(); //获取文本框输入的内容 if(username != 'jack'){ $('span').text('你输入的用户名不正确'); //阻止提交默认事件 //event.preventDefault(); return false; }else{ alert("登录成功"); } }) }) </script> </html>
3,如果同时提供事件类型和函数名称,那么就删除指定名称的事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <button id="btn" type="button">单击</button> <button id="delAll" type="button">点击解除绑定</button> <div id="test"></div> </body> <script type="text/javascript"> $(function(){ //绑定事件 $("#btn").bind("click",function(){ $('#test').append('<p> 绑定的函数1</p>'); }).bind("click",function(){ $('#test').append('<p> 绑定的函数2</p>'); }).bind("click",function(){ $('#test').append('<p> 绑定的函数3</p>'); }); //解除绑定 $("#delAll").click(function(){ $("#btn").unbind('click'); }) }); </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <button id="btn" type="button">单击</button> <button id="delAll" type="button">点击解除绑定</button> <button id="delTwo" type="button">解除第二个事件</button> <div id="test"></div> </body> <script type="text/javascript"> $(function(){ //绑定事件 $("#btn").bind("click",myFun1=function(){ $('#test').append('<p> 绑定的函数1</p>'); }).bind("click",myFun2=function(){ $('#test').append('<p> 绑定的函数2</p>'); }).bind("click",myFun3=function(){ $('#test').append('<p> 绑定的函数3</p>'); }); //解除绑定 //$("#delAll").click(function(){ // $("#btn").unbind('click'); //}) //解除单个的绑定事件 $("#delTwo").click(function(){ $("#btn").unbind('click',myFun2); }) }); </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <button id="btn" type="button">单击</button> <div id="test"></div> </body> <script type="text/javascript"> $(function(){ //绑定事件 $("#btn").one("click",myFun1=function(){ $('#test').append('<p> 绑定的函数1</p>'); }).one("click",myFun2=function(){ $('#test').append('<p> 绑定的函数2</p>'); }).bind("click",myFun3=function(){ $('#test').append('<p> 绑定的函数3</p>'); }); }); </script> </html>
$(选择器).witdh()|innerWidth()|outerWidth()
$(选择器).height()|innerHeight()|outerHeight()
innerWidth()和innerHeight() 返回元素内容加上内边距的宽高
outerWidth()和outerHeight() 返回内容、内边距、边框的宽高
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> div{ width: 100px; height: 100px; padding: 20px; border: 10px solid red; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div></div> </body> <script type="text/javascript"> $(function(){ //获取元素的宽高 var w = $('div').width(); var h = $('div').height(); var innerw = $('div').innerWidth(); var innerh = $('div').innerHeight(); var outerw = $('div').outerWidth(); var outerh = $('div').outerHeight(); //获取窗口的宽高 var winw = $(window).width(); var winh = $(window).height(); alert('w:'+w+',h:'+h); alert('innerw'+innerw+',innerh:'+innerh); alert('outerw:'+outerw+',outerh:'+outerh); alert('winw:'+winw+',winh:'+winh); }) </script> </html>
如果在窗口中由两个div,现在需要div2把剩下空白区域填满,不通过浏览器高度不同,剩余的空间也不同,需要动态改变div2的高度,这就是页面div高度的自适应
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> *{ padding: 0; margin: 0; } .header{ height: 100px; line-height: 100px; background-color: #abcdef; } .content{ margin-top: 10px; overflow: hidden; } .content .left{ width: 20%; height: 100%; background-color: #ABCDEF; float: left; } .content .right{ width: 80%; height: 100%; background-color: #fff000; float: right; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div class="header">Header</div> <div class="content"> <div class="left">left</div> <div class="right">right</div> </div> </body> <script type="text/javascript"> function setHeight(){ var winh = $(window).height(); $('.left').css('height',winh-110+'px'); } $(function(){ setHeight(); }) </script> </html>
输入框中值的操作(文本框、文本域、下拉框),HTML内容操作
$(选择器).text() :设置或者返回所选元素的文本内容
$(选择器).html() :设置或者返回所选元素的文本内容(返回HTML标签)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p id="test0"> 窗前 <b>明月</b> 光</p> <input type="text" id="test1"> <br> <button id="btn1" type="button">显示文本text</button> <button id="btn2" type="button">显示文本html</button> <button id="btn3" type="button">显示表单字段val</button> </body> <script type="text/javascript"> $(function(){ //返回text $("#btn1").click(function(){ alert("文本内容位:"+$("#test0").text()); }) //返回html $("#btn2").click(function(){ alert("文本内容位:"+$("#test0").html()); }) //返回val $("#btn3").click(function(){ alert("文本内容位:"+$("#test1").val()); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <form action="" > <table width="100%"> <tr> <td> <h1>会员注册</h1> </td> </tr> <!-- 用户名 --> <tr> <td> 用户名: </td> <td> <input οnblur="checkusername()" type="text" name="username"> </td> <td> <div id="username"> 请输入用户名,由4-20位数字、字母、下划线在组成 ,不能以数字开头 </div> </td> </tr> <!-- 密码 --> <tr> <td> 密码: </td> <td> <input οnblur="checkpassword()" type="password" name="password"> </td> <td> <div id="password"> 请输入密码,由6-20位非空白字符组成 </div> </td> </tr> <!-- 确认密码 --> <tr> <td> 密码: </td> <td> <input οnblur="checkrepassword()" type="password" name="repassword"> </td> <td> <div id="repassword"> 请输入确认密码,和密码相同 </div> </td> </tr> </table> <input type="submit" value="注册"/> </form> </body> <script type="text/javascript"> //验证用户名 function checkusername(){ var username = $('[name=username]').val();//获取输入的值 //用用户名匹配正则 var re = /^[a-zA-Z_][a-zA-Z0-9_]{3,19}$/.test(username); if(re){ $("#username").html("用户名合法,请继续输入"); return true; }else{ $("#username").html("<font color='red'>用户不合法,请重新输入</font>"); return false; } } //验证密码 function checkpassword(){ var password = $('[name=password]').val();//获取输入的密码值 //用用户名匹配正则 var re = /[a-zA-Z0-9_]{6,20}/.test(password); if(re){ $("#password").html("密码合法,请继续输入"); return true; }else{ $("#password").html("<font color='red'>密码不合法,请重新输入</font>"); return false; } } //确认密码 function checkrepassword(){ var password = $('[name=password]').val();//获取输入的密码值 var repassword = $('[name=repassword]').val();//获取取认的密码值 if(password==repassword){ $("#repassword").html("确认密码正确"); return true; }else{ $("#repassword").html("<font color='red'>确认密码错误,请重新输入</font>"); return false; } } </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p title="p标签的title属性值">文档内容</p> <button id="btn" type="button">点击获取p标签title值</button> </body> <script type="text/javascript"> $(function(){ $('#btn').click(function(){ alert($('p').attr('title')); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> #img1{ width: 580px; border: 5px solid orange; position: relative; } #img1 img{ display: block; } #img1 div{ border: 1px solid orange; background-color: aliceblue; padding: 1px 5px; position: absolute; bottom:8px; font-weight: bold; } </style> </head> <body> <div id="img1"> <img src="./img/1.jpg" width="580px"> <div style="right: 60px;background-color: orange;" >1</div> <div style="right: 35px;" >2</div> <div style="right: 10px;" >3</div> </div> </body> <script type="text/javascript"> //定义一个存放图片的数组 var arr = ["./img/1.jpg","./img/2.jpg","./img/3.jpg"]; var k = 0; //数组的索引 var t; function changeSrc(){ k++; //下标自增正,不能超过2 if(k>2){ k=0; } var path = arr[k];//获取图片数组的src地址 $("#img1 img").attr('src',path); //jquery调用arrt方法 //使用位置选择器改变子div的样式 $("#img1 div").css('background',''); $("#img1 div:eq("+k+")").css('background','orange'); t = setTimeout(changeSrc,1000); } $(function(){ t = setTimeout(changeSrc,1000); //设置鼠标悬停效果 $("#img1").mouseenter(function(){ clearTimeout(t); }); $("#img1").mouseleave(function(){ t = setTimeout(changeSrc,1000); }); }) </script> </html>
$(选择器).css(样式属性名,[值])设置或者返回被选元素一个或者多个样式的值
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <p style="color: red;">p标签内容1</p> <p style="color: green;">p标签内容2</p> </body> <script type="text/javascript"> $(function(){ //弹出第一个p标签的color属性值 alert($('p:first').css('color')); //设置属性 $('p').css('background','orange'); }) </script> </html>
$(选择器).toggleClass(类名) 添加和移除的集合
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .test{ font-weight: bold; color: red; } .add{ background-color: yellow; color: blue; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <button id="btn1" type="button">追加样式</button> <button id="btn2" type="button">移除样式</button> <button id="btn3" type="button">切换样式</button> <p class="test"> 你喜欢的运动是</p> <ul> <li>足球</li> <li>篮球</li> </ul> </body> <script type="text/javascript"> $(function(){ //追加样式 $("#btn1").click(function(){ $("p").addClass("add"); $("li").addClass("add"); }); //移除样式 $("#btn2").click(function(){ $("p").removeClass("add"); $("li").removeClass("add"); }); //结合体 $("#btn3").click(function(){ $("p").toggleClass("add"); $("li").toggleClass("add"); }); }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> *{ padding: 0; margin: 0; } .content{ width: 380px; } .content #div0,#div1,#div2{ border: 2px solid orange; } #div0 ul,#div1 ul,#div2 ul{ padding-left: 30px; padding-top: 10px; padding-bottom: 10px; } .content #ul1{ list-style: none; overflow: hidden; height: 38px; line-height: 38px; } #ul1 li{ width: 80px; height: 38px; line-height: 38px; text-align: center; font-weight: bold; float: left; } .cur{ background-color: #FF0000; color: white; } </style> </head> <body> <div class="content"> <ul id="ul1"> <li class="cur">国内</li> <li>国际</li> <li>体育</li> </ul> <!-- 国内标题块 --> <div id="div0"> <ul> <li><a href="">[国内]标题1</a></li> <li><a href="">[国内]标题2</a></li> </ul> </div> <!-- 国际标题块 --> <div id="div1" style="display: none;"> <ul> <li><a href="">[国际]标题1</a></li> <li><a href="">[国际]标题2</a></li> </ul> </div> <!-- 体育标题块 --> <div id="div2" style="display: none;"> <ul> <li><a href="">[体育]标题1</a></li> <li><a href="">[体育]标题2</a></li> </ul> </div> </div> </body> <script type="text/javascript"> $(function(){ $("#ul1 li").each(function(index){ $(this).mouseenter(function(){ //设置标题对应内容的显示或者隐藏 $("#div0,#div1,#div2").css("display","none"); $("#div"+index).css("display","block"); //设置标题样式显示效果 $("#ul1 li").removeClass('cur'); $("#ul1 li:eq("+index+")").addClass('cur'); }) }) }) </script> </html>
$(选择器).toggle(speed,函数) 显示和隐藏的结合
speed:用来控制显示 或者隐藏的速度,可以是时间以毫秒位单位,slow等,可选参数
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> #div1{ position: absolute; width: 200px; height: 200px; top: 50px; left: 10px; background-color: red; display: none; } </style> </head> <body> <button id="btn1">瞬间显示</button> <button id="btn2">慢慢显示</button> <button id="btn3">慢慢隐藏</button> <button id="btn4">显示隐藏切换</button> <div id="div1"> </div> </body> <script type="text/javascript"> $(function(){ //瞬间显示 $("#btn1").click(function(){ $('#div1').show(); }) //慢慢显示 $("#btn2").click(function(){ $('#div1').show(3000); }) //慢慢隐藏 $("#btn3").click(function(){ $('#div1').hide(2000); }) //显示隐藏切换 $("#btn4").click(function(){ $('#div1').toggle(); }) }) </script> </html>
$(选择器).fadeIn(speed,函数) 淡入已经隐藏的元素
$(选择器).fadeToggle(speed,函数) 淡入淡出结合使用
$(选择器).fadeTo(speed,透明度,函数) 淡入淡出到指定的透明度
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <style type="text/css"> #div1{ position: absolute; width: 200px; height: 200px; top: 50px; left: 10px; background-color: red; } </style> </head> <body> <button id="btn1">淡出</button> <button id="btn2">淡入</button> <button id="btn3">淡入淡出切换</button> <div id="div1"> </div> </body> <script type="text/javascript"> $(function(){ //淡出 $("#btn1").click(function(){ $("#div1").fadeOut(5000); }) //淡入 $("#btn2").click(function(){ $("#div1").fadeIn(); }) //淡出淡入切换 $("#btn3").click(function(){ $("#div1").fadeToggle(); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> ul,li{ padding: 0; margin: 0; list-style: none; } .nav{ height: 350px; background-color: #f3f3f3; } .nav>li{ text-align: center; float: left; width: 100px; height: 35px; line-height: 35px; background-color: #abcdef; border-right: 1px solid white; } a{ text-decoration: none; } .nav ul{ background-color:orange ; display: none; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <ul class="nav"> <li><a href="">首页</a></li> <li id="son1"><a href="">产品</a> <ul> <li><a href="">产品1</a></li> <li><a href="">产品2</a></li> </ul> </li> <li><a href="">资讯</a></li> </ul> </body> <script type="text/javascript"> $(function(){ //下拉效果 $("#son1").mouseenter(function(){ $("#son1 ul").slideDown(); }) //上拉效果 $("#son1").mouseleave(function(){ $("#son1 ul").slideUp(); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .big-link{ display: block; margin-top: 100px; font-size: 70px; color: #06f; } .mask{ position: absolute; top: 0px; background-color: #777; left: 0px; opacity: 0.5; } .reval-modal{ display: none; position: absolute; top: 100px; left: 50%; margin-left: -300px; width: 500px; background-color: #eee; z-index: 100; padding: 30px 40px 34px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,.4); } a{ text-decoration: none; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <a href="#" class="big-link" οnclick="s()"><h3>登录</h3></a> <div id="mask" class="mask"></div> <div id="mymodal" class="reval-modal"> <h1><span>登录</span><a href="JavaScript:h()">X</a></h1> <p>你好,欢迎登录</p> </div> </body> <script type="text/javascript"> function s(){ //控制遮罩的宽高,和显示遮罩、登录框 $("#mask").css("height",$(document).height()); $("#mask").css("width",$(document).width()); $("#mask").show(); $("#mymodal").show(); } function h(){ //控制遮罩的宽高,和隐藏遮罩、登录框 $("#mask").css("height",$(document).height()); $("#mask").css("width",$(document).width()); $("#mask").hide(); $("#mymodal").hide(); } </script> </html>
页面右下角弹层<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #div1{ width: 200px; height: 150px; border: 1px solid #ccc; background-color: #f0f0f0; position: absolute; right: 6px; bottom: 0px; display: none; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="div1">div1</div> </body> <script type="text/javascript"> $(function(){ $("#div1").slideDown(1000,function(){ setTimeout(function(){ $("#div1").slideUp(1000); },3000) }); }) </script> </html>
animate()用于创建自定义动画,这个函数关键在于通过改变元素样式来实现动画效果
$(选择器).animate(JSON串,speed,函数)
JSON串:包含样式的属性和值的映射,{a:'1',b:'2'}
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> #test{ height: 100px; width: 100px; background-color: red; position: absolute; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="test"> </div> </body> <script type="text/javascript"> $(function(){ $('#test').click(function(){ $('#test').animate({left:'200px',width:'200px',height:'200px'},2000) }) }) </script> </html>
<script type="text/javascript"> $(function(){ $('#test').click(function(){ $('#test').animate({left:'+=200px',width:'200px',height:'200px'},2000) }) }) </script>
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <style type="text/css"> #test{ height: 100px; width: 100px; background-color: red; position: absolute; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="test"> </div> </body> <script type="text/javascript"> $(function(){ $('#test').click(function(){ $('#test').animate ({left:'+=200px',width:'200px',height:'200px'},2000, function(){ $('#test').animate({left:'0px',width:'100px',height:'100px'},2000) }) }) }) </script> </html>
使用mouseenter、mouseleave、mousedown、mousedownup、mousemove都可以获取鼠标位置
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> #test{ width: 500px; height: 300px; font-size: 35px; border: 5px solid orange; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <div id="test"> </div> </body> <script type="text/javascript"> $(function(){ $("#test").mousemove(function(e){ x = e.pageX; y = e.pageY; $("#test").html("x:"+x+",y:"+y); }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <style type="text/css"> .big-link{ display: block; margin-top: 100px; font-size: 70px; color: #06f; } .mask{ position: absolute; top: 0px; background-color: #777; left: 0px; opacity: 0.5; } .reval-modal{ display: none; position: absolute; top: 100px; left: 50%; margin-left: -300px; width: 500px; background-color: #eee; z-index: 100; padding: 30px 40px 34px; border-radius: 5px; box-shadow: 0 0 10px rgba(0,0,0,.4); } a{ text-decoration: none; } </style> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <a href="#" class="big-link" onclick="s()"><h3>登录</h3></a> <div id="mask" class="mask"></div> <div id="mymodal" class="reval-modal"> <h1><span>登录</span><a href="JavaScript:h()">X</a></h1> <p>你好,欢迎登录</p> </div> </body> <script type="text/javascript"> function s(){ //控制遮罩的宽高,和显示遮罩、登录框 $("#mask").css("height",$(document).height()); $("#mask").css("width",$(document).width()); $("#mask").show(); $("#mymodal").show(); } function h(){ //控制遮罩的宽高,和隐藏遮罩、登录框 $("#mask").css("height",$(document).height()); $("#mask").css("width",$(document).width()); $("#mask").hide(); $("#mymodal").hide(); } //移动遮罩层登录框 //声明变量存放位置、坐标信息 var x0,y0,left0,top0,xn,yn,x1,y1; var start = false; $(function(){ //先绑定鼠标按下事件 $("#mymodal>h1").mousedown(function(e){ //获取鼠标按下的坐标,及当前元素的left和top值 x0 = e.pageX; y0 = e.pageY; left0 = parseInt($("#mymodal").css('left')); top0 = parseInt($("#mymodal").css('top')); start = true; //alert("鼠标按下"); }) //绑定鼠标抬起事件 $("#mymodal>h1").mouseup(function(){ start = false; }) //绑定鼠标移动事件 $("#mymodal>h1").mousemove(function(e){ if(start){ //获取鼠标移动后的坐标点 xn = e.pageX; yn = e.pageY; //使用移动后的坐标减去原来的坐标,就是元素移动距离 x1 = xn-x0; y1 = yn-y0; //把两个值分别加到元素的top和left属性中 $("#mymodal").css('left',left0+x1+'px'); $("#mymodal").css('top',top0+y1+'px'); } }) }) </script> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <body> <select name="province" οnchange="showCity()" > <option value="1">江苏</option> <option value="2">山东</option> </select> <select name="city"> </select> </body> <script type="text/javascript"> function showCity(){ //获取选择的下拉菜单中的值 var v = $("[name=province]").val(); //声明城市节点 var ob = $("[name=city]"); //判断获取的值是多少 switch(v){ case "1": ob.empty(); ob.append("<option value='11'>南京</option>"); ob.append("<option value='12'>苏州</option>"); ob.append("<option value='13'>扬州</option>"); break; case "2": ob.empty(); ob.append("<option value='21'>济南</option>"); ob.append("<option value='22'>青岛</option>"); ob.append("<option value='22'>临沂</option>"); break; } } $(function(){ showCity(); }) </script> </html>
概念: 全称是 Asynchronous JavaScript and XML 异步的JavaScript和XML,网页的异步通信,就是JS或者JQery可以直接发送HTTP请求到服务器,通过后与服务器进行少量数据交互,AJAX可以实现网页的异步更新。
dataType: 'json | xml |text |script',
第二种 [{ name:'张三',age:20},{ name:'李四',age:30},{ name:'王五',age:21}]
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> var studentOne = {name:'张三',age:20}; var students = [{ name:'张三',age:20},{ name:'李四',age:30},{ name:'王五',age:21}]; //遍历多个对象的数据 $(function(){ var n; var a; for(var k in students){ n = students[k].name; a = students[k].age; $("#s").append("<tr><td>"+n+"</td><td>"+a+"</td></tr>"); } }) </script> </head> <body> studentOne的name值为: <script type="text/javascript"> document.write(studentOne.name); </script> <table id="s"> <tr> <th>name</th> <th>age</th> </tr> </table> </body> </html>
XML也可以是服务器返回数据的一种格式,可以使用一些js中方法,如find,attr等。。
<?xml version="1.0" encoding="utf-8"?> <list> <province id="1" name='江苏'> <city id="11" name='南京'></city> <city id="12" name='苏州'></city> <city id="13" name='扬州'></city> </province> <province id="2" name='山东'> <city id="21" name='济南'></city> <city id="22" name='青岛'></city> <city id="23" name='临沂'></city> </province> </list>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> <script type="text/javascript"> //获取城市 function getCity(){ //知道选则哪个省份,获取省份对应的城市 var pid = $("[name=province]").val(); //获取省份的id值 var cityId,cityName; //ajax读取xml文件内容 $.ajax({ url:'test.xml', dataType:'xml', success:function(re){ $("[name=city]").empty(); //清空城市的节点内容 $(re).find("[id="+pid+"] city").each(function(){ //遍历城市节点 //获取id和name值 cityId = $(this).attr('id'); cityName = $(this).attr('name'); $("[name=city]").append("<option value ='"+cityId+"'>"+cityName+"</option>"); }) } }) } $(function(){ //获取省份信息 var id,name; $.ajax({ url:'test.xml', dataType:'xml', success:function(re){ //遍历省份节点 $(re).find('province').each(function(){ //获取省份数据 id = $(this).attr('id'); name = $(this).attr('name'); //把获取到的数据加到html节点中 $("[name=province]").append("<option value ='"+id+"'>"+name+"</option>"); }) getCity(); } }) //为省份追加内容变化事件 $("[name=province]").change(getCity); }) </script> </head> <body> 省:<select name="province"></select> 市:<select name="city"> </select> </body> </html>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <script type="text/javascript"> $(function(){ $('button').click(function(){ $("#div1").load("test.txt"); }) }) </script> <body> <div id="div1">文本内容显示到此处</div> <button type="button">点击获取文本内容</button> </body> </html>
$.get(url,data,函数,dataType)
$.post(url,data,函数,dataType)
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title></title> <script src="js/jquery-3.3.1.js" type="text/javascript" charset="utf-8"></script> </head> <script type="text/javascript"> $(function(){ $('button').click(function(){ // $("#div1").load("test.txt"); //get方法 //$.get("test.txt",function(data,status){ // alert("返回数据:"+data+",请求状态:"+status); //}) //post方法 //$.post("test_post.php",{name:"百度",url:"http://www.baidu.com"}, // function(data,status){ // alert("返回数据:"+data+",请求状态:"+status); //}) }) }) </script> <body> <div id="div1">文本内容显示到此处</div> <button type="button">点击获取文本内容</button> </body> </html>