2022-03-05

1. html

body属性

属性 说明
text rgb(r,g,b) rgb(%r,%g,%b) #rrggbb #rgb colorname 文本颜色
bgcolor 背景颜色
alink 活动链接颜色
link 为访问链接默认颜色
vlink 一访问链接颜色
background url 背景图像
topmargin px 上边距大小
leftmargin px 左边距大小

HTML常用特殊字符

HTML原代码         显示结果            描述
&lt;                <           小于号或显示标记
&gt;                >           大于号或显示标记
&amp;               &           可用于显示其它特殊字符
&quot;              “               引号
&reg;               ®               已注册
&copy;              ©               版权
&trade;             ™               商标
&nbsp;                              空格

1.1. 块级标签

前后断行显示,默认状态下占用一整行

具有一定的宽度和高度,可以通过设置块级标签的width、height 属性来控制

块级标签常用作容器.即可以再容纳其他块级标签或行级标签。

1.1.1. 标题标签

<h1>一级标题</h1>

h1-h6,可使用 align属性对齐

1.1.2. 段落标签

<p>有勇气就会有奇迹。</p>

可使用 align属性对齐

1.1.3. 水平线标签

【标签】<hr>
【属性】
    size:尺寸,取值单位为 px(像素),可以省略
    width:宽度,取值单位为px(像素)可以省略或百分比
    color:颜色,取值自然颜色值
    align:水平对齐方式,取值:left/center/right

1.1.4. 列表

有序列表

<ol>
  <li></li>
  <li></li>
</ol>

【属性】
    type:指定列表项标志的类型,默认为数字排列
    取值:1(默认值)/a/A/i/I(顺序标号为数字、英文字母、罗马字母)
    start:定义起始值(数字),默认从1开始
    取值:数字

无序列表

 <ul>
   <li></li>
</ul>

【属性】
    type:指定无序列表的列表项标识
    取值: disc,默认,实心圆/ circle空心圆/ square实心矩形 none,不显示标识

定义列表

<dl>
    <dt>列表中的标题内容</dt>
        <dd>列表中的数据</dd>
</dl>
使用场合:图文混排时使用

1.1.5. 表格

由<table>元素定义。

【标签】<table></table>
【属性】
    width :设置表格的宽度
    height:设置表格的高度
    align:设置表格的对齐方式,取值: left/center/right
    border:设置表格边框宽度
    cellpadding:内边距(单元格边框与内容之间的距离)
    cellspacing:外边距(单元格之间的距离)
    bgcolor:设置表格的背景颜色

table中的子元素

【标签】<tr></tr> (创建表行)
【属性】
    align:该行内容水平对齐方式,取值: left/center/right
    valign:该行内容的垂直对齐方式,取值: top/middle/bottom
    bgcolor:设置表格的背景颜色
 

【标签】<td></td> (创建单元格)
【属性】
    align:内容水平对齐方式
    valign:内容垂直对齐方式
    width :宽度
    height :高度
    colspan=值(数字,合并单元格的个数);
    rowspan=值(数字,合并单元格的个数);

【标签】<caption></caption> (表格标题)
【标签】<th></th> (表头,即列标题)
    行标题或列标题,字体有加粗的效果,放在tr中

【标签】<thead></thead> (表头)
【标签】<tbody></tbody> 表主体)
【标签】<tfoot></tfoot> (表尾)

其他运用

(1)不规则表格

- 跨列:从指定单元格位置处,横向向右合并几个(包含自己)单元格

属性:colspan=值(数字,合并单元格的个数);

- 跨行:从指定单元格位置处,纵向向下合并几个(包含自己)单元格

属性:rowspan=值(数字,合并单元格的个数);

(2)表格的嵌套

在单元格中去嵌套另一个表格,但嵌套的表格必须要放在td中

1.1.6. 表单

由<form>定义,将用户输入的数据提交给后台。
【常见属性】
    action:提交的服务器地址
    method:表单数据提交的方式,取值: get:明文提交/post:隐式提交
    name:定义表单名称,JS用到的比较多
    id: 独一无二的标识
如:<form action="url" method="get/post"> </form>

【表单控件主要属性】

    type:根据不同的type属性值可以创建各种类型的输入字段
    value:最终提交给服务器的值
    name:控件的名称,提供给服务器使用,没有name,控件则无法提交
    id:唯一标识,只能在当前页面使用,服务器不能用
    disabled:禁用,不能被提交

常用的表单控件:

基本格式:

<input name="元素的名称" type="类型" value="值“
size="显示宽度" maxlength="最多输入字符" checked="是否选中" />

(1)文本框:<input type="text">
(2)密码框:<input type="password">
 【专有属性】
     maxlength:限制输入的字符数,取值:数字
     readonly:设置文本控件只读
(3)单选按钮:<input name= “组名" type="radio" value="… " checked=" … ">
                    name相同表示同一组
(4)复选框:<input type="checkbox">
【专有属性】
     checked,设置默认被选中
(5)提交按钮:<input type="submit">
(6)重置按钮:<input type="reset">
(7)普通按钮:<input type="button">
     属性:onclick 值:事件代码
(8)图片按钮:<input type="image" src=""> 
(9)隐藏域:<input type="hidden">
(10)文件选择框:<input type="file">
**下拉选择框****select** **和** **option**
<select name="" size="行数">
  <option value="" selected="selected">选项1</option>
  <option value="" >选项2</option>
</select>
(11)多行文本框
<textarea name="... "cols="列宽"rows="行宽">
文本内容
</textarea>

只读和禁用属性
readonly:希望某个框内的内容只允许用户看,不能修改
disabled:因没达到使用的条件,限制用户使用

1.1.7. 分区元素

(1)块分区元素:<div></div>
【特点】独立成行
【作用】页面布局
(2)行内分区元素:<span></span>
【特点】多个元素在一行内显示
【作用】设置同一行文字内的不同格式

1.2. 行级标签

不会换行,多个元素会在一行内显示

可以嵌套行级标签

1.2.1. 文本样式

斜体:<i></i>       <em></em>
粗体:<b></b>          <strong></strong>
删除线:<del></del>
下划线:<u></u>
上标:<sup></sup>
下标:<sub></sub>

1.2.2. 换行元素

【标签】<br>

1.2.3. 图像

【标签】<img>
【属性】
    src:图片地址(绝对/相对)
    alt: 替代文本
    title:提示文字
    width:图像宽度 
    height:图像高度
    border:边框宽度

1.2.4. 行范围标签span

<span></span>

1.2.5. font

【标签】<font>
【属性】
    size: 字号-1 ~+7
     color:值rgb(r,g,b),#rrggbb,colorname
     face:字体

1.2.6. 内容居中

<center>文字、图片、其他对象</center>

1.2.7. 滚动文字,图片 marquee

[标签]<marquee>
[属性]:
width ,height,bgcolor,
direction:up,down,right,left(默认)
loop:循环次数,-1表示无限循环;
onMouseOver=”this.stop()” onMouseOut=”this.start()” :鼠标覆盖停止滚动,鼠标移开继续滚动;

1.2.8. pre预格式化

<pre>预格式化文本</pre>

1.2.9. 链接

【标签】<a></a>
【属性】
href:链接地址(要跳转到的页面的地址)
target:目标,打开新网页的形式
取值:
   _blank:在新标签页中打开
   _self:在自身页面中打开(默认值)
   frameName:在指定框架中打开链接
   title:鼠标放到链接上的提示

锚链接:
1、定义标记(锚):<a name="标记名">目标位置的</a>
    or      <a id="标记名">目标位置的</a>
2、设置链接到标记位置:<a href="#标记名">当前位置</a>

框架

frameset框架集

<frameset cols="25%,50%,*" rows ="50%,*" border="5">
    <frame src="the_first.html " name="firstFrameName">
    ...
</frameset>


框架窗口见的跳转:
<a href="the_first.html" target="firstFrameName"></a>
<frameset>可以嵌套使用

<a href="跳转的目标网页" target="跳转的框架名"></a>
<frameset>标签的cols属性表示将页面横向分割为几列,例如,cols=“25%,50%,*"表示将页面分割为三列.第一列占浏览器窗口总宽度的25%,第二列占50%,第三列占剩余部分,各列的宽度值也可使用具体数值(单位像素为px)。
rows属性表示将页面纵向分割为几行。
    
各框架对应的页面情况:使用<frame> 标签的src属性引用各框架对应的页面文件,同时还可以使用name属性标识各框架窗口。

需要注意的是:<frameset> 标签和<body> 标签不能同时使用,需要使用<frameset> 代替页面中的<bady>标签
属性 描述
frameborder 0 1 HTML5 不支持。规定是否显示框架周围的边框。
longdesc URL HTML5 不支持。规定一个包含有关框架内容的长描述的页面。
marginheight pixels HTML5 不支持。规定框架的上方和下方的边距。
marginwidth pixels HTML5 不支持。规定框架的左侧和右侧的边距。
name name HTML5 不支持。规定框架的名称。
noresize noresize HTML5 不支持。规定无法调整框架的大小。
scrolling yes no auto HTML5 不支持。规定是否在框架中显示滚动条。
src URL HTML5 不支持。规定在框架中显示的文档的 URL。

iframe

<body>
 <iframe src="引用页面地址" name="框架标识名" frameborder="边框" scrolling="no" />
<body>
    
和<frameset>不同,放在<body>标签内
<iframe>可以嵌套使用
属性 描述
frameborder 0 1 HTML5 不支持。规定是否显示框架周围的边框。
marginheight pixels HTML5 不支持。规定框架的上方和下方的边距。
marginwidth pixels HTML5 不支持。规定框架的左侧和右侧的边距。
name name 规定框架的名称。
scrolling yes no auto HTML5 不支持。规定是否在框架中显示滚动条。
src *URL 规定在框架中显示的文档的 URL。
align left,top,bottom,middle 不赞成使用,请用样式
height px % 设置框架高度
width

2 CSS

基本语法结构

<head>
  <style type="text/css">
    选择器(即修饰对象){
      对象的属性1: 属性值1;
      对象的属性2: 属性值2;
    }
  </style>
</head>

1.标签选择器
    标签名{ 属性名1: 属性值1;
        属性名2: 属性值2;
    }
2.类选择器
类选择器是定义某类样式,让多个HTML 元素共享,这些样式是可以共享和代码复用的。
(1)定义样式:
    .类名{ 属性名1: 属性值1;
        属性名2: 属性值2;
    }
(2)应用样式:
    <标签名 class=“类名1 类名2">标签内容</标签名>
                   
注意:定义时类名前有个点号,应用样式时则不需要点号
                   
嵌套选择器:
    p{ }:           为所有 p 元素指定一个样式。
    .marked{ }:     为所有 class="marked" 的元素指定一个样式。
    .marked p{ }:   为所有 class="marked" 元素内的 p 元素指定一个样式。
    p.marked{ }:    为所有 class="marked" 的 p 元素指定一个样式。
3.ID选择器
ID选择器用于修饰某个指定的页面元素或区块,这些样式是对应ID标识的HTML 元素所独占的
    (1)定义样式
        #ID标识名{ 属性名1: 属性值1;
            属性名2: 属性值2;
        }
    (2)应用样式
        <标签名 id=“ID标识名">标签内容</标签名>      
注意:定义ID选择器时有个井号,但给HTML 标签设置ID 属性时不需要

4.伪类选择器
伪类选择元素基于的是当前元素处于的状态,或者说元素当前所具有的特性,而不是元素的id、class、属性等静态的标志。由于状态是动态变化的,所以一个元素达到一个特定状态时,它可能得到一个伪类的样式;当状态改变时,它又会失去这个样式。

a:link {color:#000000;}      /* 未访问链接*/
a:visited {color:#00FF00;}  /* 已访问链接 */
a:hover {color:#FF00FF;}  /* 鼠标移动到链接上 */
a:active {color:#0000FF;}  /* 鼠标点击时 */

##当设置为若干链路状态的样式,也有一些顺序规则:
a:hover 必须跟在 a:link 和 a:visited后面
a:active 必须跟在 a:hover后面

CSS 中规定样式的优先级规则为:
行内样式表> 内部样式表> 外部样式表
ID 选择器 > 类选择器 > 标签选择器

插入样式表

内联样式

由于要将表现和内容混杂在一起,内联样式会损失掉样式表的许多优势。请慎用这种方法,例如当样式仅需要在一个元素上应用一次时。

要使用内联样式,你需要在相关的标签内使用样式(style)属性。Style 属性可以包含任何 CSS 属性。本例展示如何改变段落的颜色和字体。

<p style="color:sienna;font:large 楷体 ">这是一个段落。</p>

内部样式表

当单个文档需要特殊的样式时,就应该使用内部样式表。你可以使用 <style> 标签在文档头部定义内部样式表,就像这样:

<head> 
    <style type="text/css"> 
        hr {color:sienna;} 
        p {margin-left:20px;}
        body {background-image:url("images/back40.gif");}
    </style>
</head>

外部样式表

当样式需要应用于很多页面时,外部样式表将是理想的选择。在使用外部样式表的情况下,你可以通过改变一个文件来改变整个站点的外观。每个页面使用 <link> 标签链接到样式表。 <link> 标签在(文档的)头部:

1)链接外部样式表
<head> <link rel="stylesheet" type="text/css" href="mystyle.css"> </head>


2)外部样式表
    <style type="text/css">
    @import url("sheet1.css");
    @import url("sheet2.css"");
    </style>

浏览器会从文件 mystyle.css 中读到样式声明,并根据它来格式文档。

外部样式表可以在任何文本编辑器中进行编辑。文件不能包含任何的 html 标签。样式表应该以 .css 扩展名进行保存。下面是一个样式表文件的例子:

hr {color:sienna;} 
p {margin-left:20px;}
body {background-image:url("/images/back40.gif");}

属性

文本和字体属性

属性 含义
color 颜色
line-height 行高(即行间距),常用取值为25px、28px
text-align 对齐方式,常用取值为left、 center、 right
letter-spacing 字符间距,常用取值3px、8px
text-decoration 文本修饰,line style color的复合,常用取值underline(下划线) line-through(删除线)none(默认)
font "font-style font-variant font-weight font-size/line-height font-family" font-size和font-family的值是必需的。
font-family font-size和font-family的值是必需的。字体 宋体、隶书、楷体、黑体
font-size 大小 small、medium、large
font-weight 粗细 normal bold bolder lighter 100~900
font-style 正常、斜体 normal、italic

背景属性

属性 含义
background-color 背景颜色
background-image 背景图片 值: url(“路径”)
background-repeat 背景平铺方式 no-repeat、 repeat-x、 repeat-y、 repeat()
background-attachment scroll背景图片随着页面的滚动而滚动,默认的fixed背景图片不随着页面的滚动
background-position 偏移位置 x%,y% or x,y or left right top bottom

列表属性

属性 含义
list-style-type none disc实心圆默认 circle圈 square实心方块 decimal数字
list-style-position inside、outside(默认)
list-style-image url(“路径”)
list-style 按 type position image 顺序,可以缺省

盒子属性

属性 含义
margin 设置外边距,顺序是上下左右,可以缺省,值可以是 px、%,auto(默认)
margin-(top|right|bottom|left) 单独设置一边的外边距
border-color 属性用于设置边框的颜色
border-width 可以指定长度值,也可用thick 、medium(默认值) 和 thin。
border-style none无 dashed虚线 solid实线 double双线 inset陷入 outset突出 可以单独设置某一边 例 border-top-style:dashed
border-radius 设置外边框圆角。使用一个半径时确定一个圆形,使用两个半径时确定一个椭圆。
border 按width style color顺序设置复合边框,可缺省。
outline-width outline-style outline-color outline 元素周围轮廓线
padding 设置内边距,顺序是上下左右,可以缺省,值可以是 px、%,auto(默认)
padding-(top|right|bottom|left) 单独设置一边的内边距

尺寸

属性 含义
height 元素高度,该属性不包括填充,边框和页边距 值:auto, px, %
width
line-height 行高
max-height 最大高度
cursor 移动到该项时光标的形状:url auto crosshair十字 pointer手 move移动 text文本 wait沙漏 help问号
overflow 设置当元素的内容溢出其区域时发生的事情。auto hidden scroll visible
display none此元素不会被显示且不占空间 block显示为块级元素,此元素前后会带有换行符。inline显示为内联元素,元素前后没有换行符。

<p>请把鼠标移动到单词上,可以看到鼠标指针发生变化:</p>
<span style="cursor:auto">auto</span>
<span style="cursor:crosshair">crosshair</span>
<span style="cursor:default">default</span>

<span style="cursor:e-resize">e-resize</span>

<span style="cursor:help">help</span>

<span style="cursor:move">move</span>

<span style="cursor:n-resize">n-resize</span>

<span style="cursor:ne-resize">ne-resize</span>

<span style="cursor:nw-resize">nw-resize</span>

<span style="cursor:pointer">pointer</span>

<span style="cursor:progress">progress</span>

<span style="cursor:s-resize">s-resize</span>

<span style="cursor:se-resize">se-resize</span>

<span style="cursor:sw-resize">sw-resize</span>

<span style="cursor:text">text</span>

<span style="cursor:w-resize">w-resize</span>

<span style="cursor:wait">wait</span>

DIV+CSS布局

属性 含义
float 指定一个盒子(元素)是否可以浮动。值: left right none
clear 如果前一个元素存在左浮动或右浮动,则换行以区隔 值: right left both none

浮动的三大显著特征:

  1. DIV块元素失去“块状”换行显示特征,变为行内元素
  2. 紧贴上一个浮动元素(同方向)或父级元素的边框,如宽度不够将换行显示
  3. 占据行内元素的空间,导致行内元素围绕显示

div设置width height (%)嵌套 进行布局

三行两列模式

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>div+css布局</title>
        <style type="text/css">
            #bg{width: 100%;height: 1000px;}/*大容器*/
            #header{
                width: 100%;height: 20%;background:yellowgreen;
            }
            #main{
                width: 100%;height: 70%;
            }
            #left{
                width: 20%;height: 100%;background:brown;float: left;
            }
            #right{
                width: 80%;height: 100%;background:yellow;float: left;
            }
            #footer{
                width: 100%;height: 10%;background:black;clear: both;
            }
        </style>
    </head>
    <body>
        <div id="bg">
            <div id="header"></div>
            <div id="main">
                <div id="left"></div>
                <div id="right"></div>
            </div>
            <div id="footer"></div> 
        </div>
    </body>
</html>

3. JavaScript

基本语法

与html结合方式
    1. 内部JS:
        * 定义<script>,标签体内容就是js代码
    2. 外部JS:
        * 定义<script>,通过src属性引入外部的js文件

        * 注意:
            如果我们把 JavaScript 代码放入函数中,就可以在事件发生时调用该函数。
            1. <script>可以定义在html页面的任何地方。但是定义的位置会影响执行顺序。
            2. <script>可以定义多个。
2. 注释
    1. 单行注释://注释内容
    2. 多行注释:/*注释内容*/
3. 数据类型:
    在 JavaScript 中有 6 种不同的数据类型:
        string      字符串。 字符串  "abc" "a" 'abc'
        number      数字。 整数/小数/NaN(not a number 一个不是数字的数字类型)
        boolean     true和false
        object
        function
        symbol
    3 种对象类型:
        Object
        Date
        Array
    2 个不包含任何值的数据类型:
        null    一个对象为空的占位符
        undefined   未定义。如果一个变量没有给初始化值,则会被默认赋值为undefined
    
        # null 和 undefined 的值相等,但类型不等:
        
    constructor 属性返回所有 JavaScript 变量的构造函数。
    你可以使用 constructor 属性来查看对象是否为数组 (包含字符串 "Array"):
    function isArray(myArray) {
        return myArray.constructor.toString().indexOf("Array") > -1;
    }
            
4. 变量
    * 语法:
    * var 变量名 = 初始化值;
            
    * typeof运算符:获取变量的类型。
    * 注:null运算后得到的是object
5. 运算符
    1. 一元运算符:只有一个运算数的运算符
        ++,-- , +(正号)  
        * ++ --: 自增(自减)
        * ++(--) 在前,先自增(自减),再运算
        * ++(--) 在后,先运算,再自增(自减)
        * +(-):正负号
    ### 注意:在JS中,如果运算数不是运算符所要求的类型,那么js引擎会自动的将运算数进行类型转换
           * 其他类型转number:
           * string转number:按照字面值转换。如果字面值不是数字,则转为NaN(不是数字的数字)
           * boolean转number:true转为1,false转为0
    2. 算数运算符
        + - * / % ...

    3. 赋值运算符
        = += -+....

    4. 比较运算符
        > < >= <= == ===(全等于)
        * 比较方式
        1. 类型相同:直接比较
          * 字符串:按照字典顺序比较。按位逐一比较,直到得出大小为止。
        2. 类型不同:先进行类型转换,再比较
          * ===:全等于。在比较之前,先判断类型,如果类型不一样,则直接返回false
    5. 逻辑运算符
                && || !
                * 其他类型转boolean:
                   1. number:0或NaN为假,其他为真
                   2. string:除了空字符串(""),其他都是true
                   3. null&undefined:都是false
                   4. 对象:所有对象都为true
            
    6. 三元运算符
        ? : 表达式
                
    7. 位运算符
        &  |  
        ~  取反
        ^  异或
            
6. 流程控制语句:
    1. if...else...
    2. switch:
    * 在java中,switch语句可以接受的数据类型: byte int shor char,枚举(1.5) ,String(1.7)
        * switch(变量):
            case 值:
        * 在JS中,switch语句可以接受任意的原始数据类型
    3. while
    4. do...while
    5. for
    6. for in
7. JS特殊语法:
    1. 语句以;结尾,如果一行只有一条语句则 ;可以省略 (不建议)
    2. 变量的定义使用var关键字,也可以不使用
        * 用: 定义的变量是局部变量
        * 不用:定义的变量是全局变量(不建议)
    3. with语句为代码块创建默认对象:
        with(默认对象){
             代码块;
        }

json

定义:
    var json_obj = {
        "属性":值,
        "属性":值,
        "属性":值
    }
    值可以是任何类型,数组,包括json对象
    
访问:
    1.  json_obj.属性
    2.  json_obj["属性"]
    
数据交换:
    string to json_obj:
        window.eval("var jo ="+json_str);
        
        var obj = JSON.parse(text);
        
    json_obj to string:
        var json_str = JSON.stringify(json_obj);
    

JavaScript 表单验证

HTML 表单验证可以通过 JavaScript 来完成。

<form name="myForm" action="demo_form.php" onsubmit="return validateForm()" method="post">
名字: <input type="text" name="fname">
<input type="submit" value="提交">
</form>

/* onsubmit="return fun()"
    提交时调用fun();返回false阻止数据提交
*/

常用对象、函数

String

https://www.runoob.com/jsref/jsref-obj-string.html

字符串属性和方法
属性:
length
prototype
constructor
方法:
charAt()
charCodeAt()
concat()
fromCharCode()
# indexOf()
lastIndexOf()
match()
replace()
search()
slice()
split()
substr()
# substring()
# toLowerCase()
toUpperCase()
valueOf()

Date

https://www.runoob.com/jsref/jsref-obj-date.html

# getDate() 从 Date 对象返回一个月中的某一天 (1 ~ 31)。
# getDay()  从 Date 对象返回一周中的某一天 (0 ~ 6)。
# getFullYear() 从 Date 对象以四位数字返回年份。
# getHours()    返回 Date 对象的小时 (0 ~ 23)。
getMilliseconds()   返回 Date 对象的毫秒(0 ~ 999)。
# getMinutes()  返回 Date 对象的分钟 (0 ~ 59)。
# getMonth()    从 Date 对象返回月份 (0 ~ 11)。
getSeconds()    返回 Date 对象的秒数 (0 ~ 59)。
# getTime() 返回 1970 年 1 月 1 日至今的毫秒数。
setDate()   设置 Date 对象中月的某一天 (1 ~ 31)。
setFullYear()   设置 Date 对象中的年份(四位数字)。
setHours()  设置 Date 对象中的小时 (0 ~ 23)。
setMilliseconds()   设置 Date 对象中的毫秒 (0 ~ 999)。
setMinutes()    设置 Date 对象中的分钟 (0 ~ 59)。
setMonth()  设置 Date 对象中月份 (0 ~ 11)。
setSeconds()    设置 Date 对象中的秒钟 (0 ~ 59)。
setTime()   setTime() 方法以毫秒设置 Date 对象。
toDateString()  把 Date 对象的日期部分转换为字符串。
toISOString()   使用 ISO 标准返回字符串的日期格式。
toJSON()    以 JSON 数据格式返回日期字符串。
toLocaleDateString()    根据本地时间格式,把 Date 对象的日期部分转换为字符串。
toLocaleTimeString()    根据本地时间格式,把 Date 对象的时间部分转换为字符串。
# toLocaleString()  根据本地时间格式,把 Date 对象转换为字符串。
toString()  把 Date 对象转换为字符串。
toTimeString()  把 Date 对象的时间部分转换为字符串。
toUTCString()   根据世界时,把 Date 对象转换为字符串。实例:

Math

https://www.runoob.com/jsref/jsref-obj-math.html

Math 对象属性
E   返回算术常量 e,即自然对数的底数(约等于2.718)。
LN2 返回 2 的自然对数(约等于0.693)。
LN10    返回 10 的自然对数(约等于2.302)。
LOG2E   返回以 2 为底的 e 的对数(约等于 1.4426950408889634)。
LOG10E  返回以 10 为底的 e 的对数(约等于0.434)。
PI  返回圆周率(约等于3.14159)。
SQRT1_2 返回 2 的平方根的倒数(约等于 0.707)。
SQRT2   返回 2 的平方根(约等于 1.414)。

Math 对象方法
abs(x)  返回 x 的绝对值。
acos(x) 返回 x 的反余弦值。
asin(x) 返回 x 的反正弦值。
atan(x) 以介于 -PI/2 与 PI/2 弧度之间的数值来返回 x 的反正切值。
atan2(y,x)  返回从 x 轴到点 (x,y) 的角度(介于 -PI/2 与 PI/2 弧度之间)。
ceil(x) 对数进行上舍入。
cos(x)  返回数的余弦。
exp(x)  返回 Ex 的指数。
floor(x)    对 x 进行下舍入。
log(x)  返回数的自然对数(底为e)。
max(x,y,z,...,n)    返回 x,y,z,...,n 中的最高值。
min(x,y,z,...,n)    返回 x,y,z,...,n中的最低值。
pow(x,y)    返回 x 的 y 次幂。
random()    返回 0 ~ 1 之间的随机数。
round(x)    四舍五入。
sin(x)  返回数的正弦。
sqrt(x) 返回数的平方根。
tan(x)  返回角的正切。

Array

https://www.runoob.com/jsref/jsref-obj-array.html

创建Array:
var arr= [];
var arr2=new Array();
var arr2=new Array(10);//长度为10
var arr2=new Array(1,2,3,4,5,6);//数组中有1,2,3,4,5,6元素


属性  描述
constructor 返回创建数组对象的原型函数。
length  设置或返回数组元素的个数。
prototype   允许你向数组对象添加属性或方法。
Array 对象方法
方法  描述
concat()    连接两个或更多的数组,并返回结果。
copyWithin()    从数组的指定位置拷贝元素到数组的另一个指定位置中。
fill()  使用一个固定值来填充数组。
includes()  判断一个数组是否包含一个指定的值。
indexOf()   搜索数组中的元素,并返回它所在的位置。
isArray()   判断对象是否为数组。
join(str)   把数组的所有元素放入一个字符串。以str连接
lastIndexOf()   搜索数组中的元素,并返回它最后出现的位置。
splice(n,n) 删除数组m位置n个元素
pop()   删除数组的最后一个元素并返回删除的元素。
push()  向数组的末尾添加一个或更多元素,并返回新的长度。
reverse()   反转数组的元素顺序。
sort()  对数组的元素进行排序。
toString()  把数组转换为字符串,并返回结果。

window

https://www.runoob.com/jsref/obj-window.html

属性  描述
closed  返回窗口是否已被关闭。

history 对 History 对象的只读引用。请参数 History 对象。
innerHeight 返回窗口的文档显示区的高度。
innerWidth  返回窗口的文档显示区的宽度。
localStorage    在浏览器中存储 key/value 对。没有过期时间。
length  设置或返回窗口中的框架数量。
location    用于窗口或框架的 Location 对象。请参阅 Location 对象。
name    设置或返回窗口的名称。
navigator   对 Navigator 对象的只读引用。请参数 Navigator 对象。
opener  返回对创建此窗口的窗口的引用。
outerHeight 返回窗口的外部高度,包含工具条与滚动条。
outerWidth  返回窗口的外部宽度,包含工具条与滚动条。
pageXOffset 设置或返回当前页面相对于窗口显示区左上角的 X 位置。
pageYOffset 设置或返回当前页面相对于窗口显示区左上角的 Y 位置。
parent  返回父窗口。
screen  对 Screen 对象的只读引用。请参数 Screen 对象。
screenLeft  返回相对于屏幕窗口的x坐标
screenTop   返回相对于屏幕窗口的y坐标
screenX 返回相对于屏幕窗口的x坐标
sessionStorage  在浏览器中存储 key/value 对。 在关闭窗口或标签页之后将会删除这些数据。
screenY 返回相对于屏幕窗口的y坐标
self    返回对当前窗口的引用。等价于 Window 属性。
status  设置窗口状态栏的文本。
top 返回最顶层的父窗口。
Window 对象方法
 
方法  描述
alert() 显示带有一段消息和一个确认按钮的警告框。
atob()  解码一个 base-64 编码的字符串。
btoa()  创建一个 base-64 编码的字符串。
blur()  把键盘焦点从顶层窗口移开。
# clearInterval()   取消由 setInterval() 设置的 timeout。
clearTimeout()  取消由 setTimeout() 方法设置的 timeout。
close() 关闭浏览器窗口。
# open(url , target)    打开一个新窗口。target值:_blank:新窗口(默认),_self:当前窗口
confirm()   显示带有一段消息以及确认按钮和取消按钮的对话框。
createPopup()   创建一个 pop-up 窗口。
# eval()     执行字符串形式的JavaScript代码;
focus() 把键盘焦点给予一个窗口。
getSelection()  返回一个 Selection 对象,表示用户选择的文本范围或光标的当前位置。
getComputedStyle()  获取指定元素的 CSS 样式。
matchMedia()    该方法用来检查 media query 语句,它返回一个 MediaQueryList对象。
moveBy()    可相对窗口的当前坐标把它移动指定的像素。
moveTo()    把窗口的左上角移动到一个指定的坐标。
open()  打开一个新的浏览器窗口或查找一个已命名的窗口。
print() 打印当前窗口的内容。
prompt()    显示可提示用户输入的对话框。
resizeBy()  按照指定的像素调整窗口的大小。
resizeTo()  把窗口的大小调整到指定的宽度和高度。
scroll()    已废弃。 该方法已经使用了 scrollTo() 方法来替代。
scrollBy()  按照指定的像素值来滚动内容。
scrollTo()  把内容滚动到指定的坐标。
# setInterval() 按照指定的周期(以毫秒计)来调用函数或计算表达式。
setTimeout()    在指定的毫秒数后调用函数或计算表达式。
stop()  停止页面载入。
postMessage()   安全地实现跨源通信。

JavaScript 可以通过不同的方式来输出数据:

使用 window.alert() 弹出警告框。
使用 document.write() 方法将内容写到 HTML 文档中。
使用 innerHTML 写入到 HTML 元素。
使用 console.log() 写入到浏览器的控制台。

document.getElementById("demo") 是使用 id 属性来查找 HTML 元素的 JavaScript 代码 。
innerHTML = "段落已修改。" 是用于修改元素的 HTML 内容(innerHTML)的 JavaScript 代码。


var obj = JSON.parse(json_str)      用于将一个 JSON 字符串转换为 JavaScript 对象。
var json_str JSON.stringify(obj)    用于将 JavaScript 值转换为 JSON 字符串。

对话框

//警告框    一个确定按钮
alert(msg);

//确认框    确定:true,取消:false,
confirm(msg);

//输入框   确认;返回输入信息,取消:null;
prompt('提示信息',默认值);

HTML DOM

查找html

通过 id 查找 HTML 元素
var x=document.getElementById("intro");

通过标签名查找 HTML 元素
var y=x.getElementsByTagName("p");

通过类名找到 HTML 元素
var x=document.getElementsByClassName("intro");

通过 html name属性 查找html元素 可以获得一组name相同的html元素;
var x = document.getElementsByName(nameStr);

改变html

改变 HTML 输出流:    document.write(html_str);
document.write(Date());

改变 HTML 内容:   document.getElementById(id).innerHTML=新的HTML内容
document.getElementById("p1").innerHTML="新文本!";

改变 HTML 属性:   document.getElementById(id).属性=新属性值
<img id="image" src="smiley.gif">
document.getElementById("image").src="landscape.jpg";

改变html样式:   document.getElementById(id).style.属性=新样式
document.getElementById("p2").style.color="blue";

常见的HTML事件

下面是一些常见的HTML事件的列表:

事件 描述
onchange HTML 元素改变
blur focus 失去焦点 获得焦点
onmouseover onmouseout 鼠标指针移动到、移开指定的元素上时发生
onmousedown、onmouseup 以及 onclick 点击鼠标按钮 释放鼠标按钮 完成鼠标点击时
onkeydown 用户按下键盘按键
onload 和 onunload 在用户进入或离开页面时被触发。
onsubmit onreset 表单提交 重置时触发
<!--  事件注册1    -->
<!--onmouseover  onmouseout测试-->
<div onmouseover="mOver(this)" onmouseout="mOut(this)" style="background-color:#D94A38;width:120px;height:20px;">Mouse Over Me</div>

<script>
function mOver(obj){
    obj.innerHTML="mose over on me";
}
function mOut(obj){
    obj.innerHTML="Mouse Over Me";
}
</script>


<!--  事件注册2  -->
<input type="button" id="btn">btn</input>
<scrip>
    function fun(){
    
    }
    document.getElementById("btn").onclick = fun;
    //可以使用匿名函数
    document.getElementById("btn").onclick = function (){};
</scrip>


<!--  事件注册3  -->
addEventListener() 方法用于向指定元素添加事件句柄。添加的事件句柄不会覆盖已存在的事件句柄。
element.addEventListener(event, function, useCapture*);
element.removeEventListener("mousemove", myFunction);
第一个参数是事件的类型 (如 "click" 或 "mousedown").
第二个参数是事件触发后调用的函数。
第三个参数是个布尔值用于描述事件是冒泡还是捕获。该参数是可选的。默认值为 false, 即冒泡传递,
在冒泡中,内部元素的事件会先被触发;当值为 true 时, 事件使用捕获传递。

使用示例:
document.getElementById("myDiv").addEventListener("mouseover", myFunction);

注册事件一般使用

<scrip>
    window.onload=function(){
         document.getElementById("btn").onclick = function (){
             //鼠标点滴事件
         };
    }
</scrip>
<input type="button" id="btn">btn</input>

手动触发事件

元素.事件();

document.getElementById("text").blur();//手动让文本框失去焦点

创建新的 HTML 元素 (节点) - appendChild()

要创建新的 HTML 元素 (节点)需要先创建一个元素,然后在已存在的元素中添加它。

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
    //创建 <p> 元素:
var new_child = document.createElement("p");
    //为 <p> 元素创建一个新的文本节点:
var node = document.createTextNode("这是一个新的段落。");
    //将文本节点添加到 <p> 元素中:
new_child.appendChild(node);
    //查找已存在的元素
var parent = document.getElementById("div1");
    //最后,将<p>元素添加到一个已存在的元素中
parent.appendChild(new_child);
</script>


以上的实例我们使用了 appendChild() 方法,它用于添加新元素到尾部。
如果我们需要将新元素添加到特殊,可以使用 insertBefore() 方法:

<div id="div1">
<p id="p1">这是一个段落。</p>
<p id="p2">这是另外一个段落。</p>
</div>
 
<script>
var new_child = document.createElement("p");
var node = document.createTextNode("这是一个新的段落。");
para.appendChild(node);
 
var parent = document.getElementById("div1");
var child_p2 = document.getElementById("p2");
parent.insertBefore(new_child, child_p2);//将new_child添加到child_p2之前
</script>

移除已存在的元素
parent.removeChild(child);
替换 HTML 元素 
parent.replaceChild(new_child, child);//在parent容器中用new_child取代child

案例

键盘按下——捕获回车键

<input type="text" id="tx"/>
<script>
    window.onload=function(){
        document.getElementById("tx").onkeydown=function(e){
            //console.log(e.keyCode) 可以测试
            if(e.keyCode == 13){//回车键
                //...
            }
        }
    }
</script>

复选框的全选和取消全选

<input type="checkbox" name="hobby" value="music"/>音乐<br>
<input type="checkbox" name="hobby" value="film"/>电影<br>
<input type="checkbox" name="hobby" value="sport"/>运动<br>

<script>
    window.onload=function(){
        var quan = document.getElementById("quan");
        var hobbys = document.getElementsByName("hobby");
        //点击全选框时将每个复选框checked设置同全选框一样
        quan.onclick=function(){
            for(var i in hobbys){
                hobbys[i].checked = quan.checked;
            }
        }
        
        //设置每个复选框的点击事件,
        for(var i in hobbys){
            hobbys[i].onclick=function(){
                var checkdCount =0;
                for(var j =0;j<hobbys.length;j++){//不知为何这里用for in 会出错
                    if(hobbys[j].checked){  
                        checkdCount++;
                }
                quan.checked = (checkdCount==hobbys.length);
            }
        }
        
    }
</script>

表单提交验证

<!DOCTYPE html>
<html>
    <head>
        <style type="text/css">
            .er{
                color: red;
            }
        </style>
    </head>
    <body>
        <form   id="userForm">
            邮箱<input type="text" name="email" id="email" /><span class="er" id="email_er"></span><br>
            密码<input type="password" name="pswd" id="pswd"/><br>
            确认密码<input type="password" id="confirm" /><span class="er" id="pswd_er"></span><br>
            <input type="button" id="submit" value="注册" />
            <input type="reset" value="重置" />
        </form>
        
        <script>  
        var emailElt = document.getElementById("email");
        var email_er = document.getElementById("email_er");
        var pswdElt = document.getElementById("pswd");
        var confirm = document.getElementById("confirm");
        var pswd_er = document.getElementById("pswd_er");
        var submitBtn = document.getElementById("submit");
        
        
        emailElt.onblur=function(){
            var email = emailElt.value.trim();// 获取email
            // 编写email的正则
            var emailRegExp = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
            var ok = emailRegExp.test(email);
            if(!ok){// 不合法
                 email_er.innerText = "邮箱地址不合法";
            }
        }
        
        emailElt.onfocus=function(){
            if(email_er.innerText !=''){//"邮箱地址不合法"
                emailElt.value='';
            }
            email_er.innerText='';
        }
        
        confirm.onblur=function(){
            var pswd = pswdElt.value;
            if(pswd != confirm.value){
                pswd_er.innerText='密码不一致';
            }
            if(pswd == ''){
                pswd_er.innerText="密码为空";
            }
        }
        confirm.onfocus=function(){
            if(pswd_er.innerText!=''){
                confirm.value='';
            }
            pswd_er.innerText='';
        }
        
        //此处不可以使用submit按钮,该按钮会刷新页面;
        submitBtn.onclick=function(){ 
            //让email和confirm获得焦点再失去焦点,检查后面提示是否为空;
            emailElt.focus();
            emailElt.blur();
            
            confirm.focus();
            confirm.blur();
            
            if(email_er.innerText=='' && pswd_er.innerText==''){
                // 获取表单对象
                var userFormElt = document.getElementById("userForm");
                // 可以在这里设置action,也可以不在这里.
                userFormElt.action = "http://localhost:8080/jd/save";
                // 提交表单
                userFormElt.submit();
            }
        }
        
        
        </script>
    </body>
</html>

其他用法

跳转页面

1.  浏览器地址栏直接写url
2.  超链接
3.  提交表单
4.  window.open(url,target)
5.   window.location.href=url       window.location=url 
    document.location.href=url      document.location=url   
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容