html大全

1.HTML简介
{
HTML(HyperText?Markup?Language)就是描述网页长什么样子、有什么内容的一个文本。
}
2.HTML的基本格式
{
<html>
<head>
<title>我的第一个网页</title>
</head>
<body bgcolor="red" background="bg.jpg">
Hello world
</body>
</html>
}
3.HTML里的标签
{
<html>
(1)H标签,HTML定义了<h1></h1>到<h6></h6>六个h标签,分别表示不同大小的字体。其中<H1>最大字体。
(2)BR标签,只是回车正常用在需要回车的地方的后面打上<br> 不需要</br>
(3)P标签,<p>是分段。<p>前后会有比较大的空白,而<br>则没有。
(4)位置标签 <center>传智播客</center>居中显示 <left></left>靠左 <right></right>靠右
(5)B标签,<b>和</b>表示标签之间的字加粗显示。
(6)I标签,<i>和</i>表示标签之间的字为斜体显示。
(7)Font标签 ,<font></font>是字体标签,在里面可以设置color,size,face等属性
<font color="red" size="30">我是Font标签</font>
(8)特殊字符HTML中<、>是有特殊含义的、空格是不会被显示的,所以需要特殊符号,相当于C#中的'\n'转义符。
&lt;(小于号,less than);
&gt;(大于号,greater than);
&nbsp;(空格,no-break space)
(9)HR标签 ,在HTML中 <hr> 为分隔符(水平线),可以设置width,color,size,align 等属性
<hr width="300px" color="red" size="10px" align="left">
(10)Pre标签,预格式化,在<pre>和</pre> 之间的内容,全部按照你在设计时的格式显示出去
</html>
(11)关于HTML注释<!-- 这期间可以添加注释 -->
}
4.URL、超链接
{
(1)URL:URL表示资源在网络中的地址,比如 http://127.0.0.1/a.htm、ftp://192.168.88.128/b.zip。
(2)超级链接:<a href="http://www.rupeng.com">如鹏网</a>。
中还可以嵌套图片,这样就是点击图UR片打开连接
<a href="http://www.rupeng.com"><img src="http://www.rupeng.com/forum/templates/uchome/images/logo.gif"/></a>
} 5.路径
{
(1)绝对路径
绝对路径就是物理路径,
在herf里面写上全路径
<a herf="C:\Users\Avraber\Desktop\20120718\123.htm"></a>
(2)相对路径 相对URL表示相对于当前文档的资源,“/”表示网站根目录,“../”表示父目录,“http://www.cnblogs.com/”表示父目录的父目录,“./”或者不写任何斜线表示相对于当前路径的目录。在文件夹里就写 ./123/test.xml
站内引用最好用相对URL,这样域名改变了、目录改变了都不受影响。
<a href="a.htm"><img src="a.jpg"/></a>
<img src="../images/csharp1.jpg" />
<img src="http://images.cnblogs.com/csharp1.jpg" />
将<a>的target属性设定为"_blank"就可以在新窗口中打开超链接。国情:国内的网站很多都是默认在新窗口中打开。
<a target="_blank"></a>
(3)锚记
用name属性为<a> 起名字:<a name="Last">这里是最后</a>。这样可以通过<a href="#Last">转到平台</a>来跳转到超链接的部分。
案例:去往评论、回到正文
} 6.图片
{
(1)<img src="a.jpg"/>注意图片是链接的,不是插入的,所以如果Src指向的文件不存在了,就看不了了

关于图片的几个属性
(2)Alt属性:alt属性为图片无法显示时的显示文本,鼠标方式去也会有悬浮提示“点击查看大图”;
(3)border属性:border属性指定边框,border="0"不显示边框;
(4)width、height属性:最好指定width、height,哪怕是原始尺寸大小,因为如果不指定大小,图片会不占位置,图片下载后才调整大小,会造成页面很乱。如果指定了width、height哪怕图片没有加载完成,也会先把位置占上。
} 7.列表
{
(1)无序列表
列表的格式为<ul>
<li>内容1</li>
<li>内容2</li>
<li>内容3</li>
<li>内容4</li>
</ul> 可以再列表里面设置属性来控制前面显示的内容 Type = disc, circle, square
(2) 有序列表<ol>
<li>内容1</li>
<li>内容2</li>
<li>内容3</li>
<li>内容4</li>
</ol> 可以再列表里面设置属性来控制前面显示的内容 Type= 1,a,A,I,i
}
8.表格
{
表格:<table></table>为表格,在内部通过<tr>创建行,<tr>内部通过<td> 创建单元格。
可以将table的border属性设为0来隐藏表格线。
<table>
<td>
<tr>
</tr>
<tr>
</tr>
</td>
</table>
(1)填充间距
cellpadding内容和表格边线之间的距离 cellspacing单元格之间的间距
(2)<tr>的属性:
align,水平对齐,可选值left、right、center;
valign,垂直对齐,可选值top、middle、bottom。
(3)<td>也有align和valign。
<tr align="right"><td>tom</td><td align="left">20</td><td>男</td></tr>子标签默认继承父标签的属性,如果自己单独指定了属性,则会覆盖父标签的属性。
(4)
可以使用rowspan(合并行)、colspan(合并列)进行单元格的合并
<BODY>
<table border="1px" bordercolor="red" cellspacing="0px" cellpadding="5px" width="500px" height="200px">
<!--table row-->
<tr>
<!--单元格-->
<th colspan="2">姓名</th>
<th>年龄</th>
<th>成绩</th>
</tr>
<tr>
<!--单元格-->
<td valign="bottom" rowspan="3">刘备</td>
<td>男</td>
<td>20</td>
<td>100</td>
</tr>
<tr>
<!--单元格-->
<td>男</td>
<td>20</td>
<td>100</td>
</tr>
<tr>
<!--单元格-->
<td>男</td>
<td>20</td>
<td>100</td>
</tr>
</table>
</BODY>
}
9.表单
{
(1)<form>标签为表单标签。如果要把数据提交到服务器,则需要将<input>、<textarea>、<select>等表单元素放到form中。
<form action="url" method=GET, POST >
...
...
<input type=submit> <input type=reset>
</form>
(2)Input
是主要的表单元素,type的可选值:


(2.1)text(文本框)
size属性为宽度,value为值,maxlength为可以输入的最大长度,readonly只读。disabled为不可填写
<input type="text" readonly/>

(2.2)password(密码框)
size属性为宽度,value为值,maxlength为可以输入的最大长度,readonly只读。disabled为不可填写
<input type="password" />

(2.3)radio(单选按钮)
相同name属性的为一只有组,不同radio设定不同的value值,这样通过取指定name的值就可以知道谁被选中了,不用单独的判断。
checked为默认选中,value为真实值,用来查询
<input type="radio" name="sex" value="male" checked="checked">男
<input type="radio" name="sex" value="female" >女
<input type="radio" name="sex" value="unknow">未知

(2.4)checkbox(复选框)
checked属性表示是否被选中,可以设定不同的name和value ,可以设定
<td>爱好:</td>
<td>
<input type="checkbox" value="cf" checked="checked">吃饭
<input type="checkbox" value="sj" checked="checked">睡觉
<input type="checkbox" value="ddd" checked="checked">打豆豆
</td>

(2.5) file(文件选择框)
使用file,则form的enctype必须设置为multipart/form-data、method属性为POST(*)
<input type="file">


(2.6)submit(提交按钮),button(普通按钮),reset(重置按钮),image(图片按钮)

<input type="button" value="注册" > 普通按钮
<input type="submit" value="注册"> 可以转到设定的action="url"页面
<input type="reset" value="重置"> 重置页面为默认页面
<input type="image" src="btn.JPG"> 图像按钮,也是普通按钮,不过样子是一个图像


(2.7)hidden(隐藏字段)
隐藏字段,内容不可见
<input type=hidden name=add value=hoge@hoge.jp>

 

(3)关于Label的用法,设定id属性的值 ,然后通过<label for="值"> 文字</label> 来使用

但是单击修饰文本的时候input并不会得到焦点,而用label则可以,for属性指定要修饰的控件的id,<label for="txt1" >asdfad</label>

(3.1)
设定快捷键,例子中设定快捷键f来快速切换到密码框,CTRL+F
<tr>
<td><label for="txtPwd" accesskey="f">密码:</label></td>
<td>
<input id="txtPwd" type="password" >
</td>
</tr>
(3.2)点击文字则选中复选(单选)框
<input id="chk1" type="checkbox" value="sj" checked="checked"><label for="chk1" accesskey="s">睡觉</label>


(4).<select>标签

用来创建类似于WinForm中的ComboBox或者ListBox

(4.1)如果size属性大于1就是ListBox(size的值为显示出来的列表数量), <select name=*>
否则就是ComboBox。 <select size=**>
<select multiple>或者<select multiple="multiple">(推荐),那么就是可以多选的ListBox。
<select size=** multiple>
注意,是用 Ctrl 键配合鼠标实现多选。


(4.2)select中的项是<option>,
<option>北京</option>还可以设定项的值<option value="1">北京</option>。

(4.3)将一个option设置为选中:<option selected>333</option>或者<option selected="selected">333</option>
(推荐)就可以将这个项设定为默认选择项

(4.4)如何实现“不选择”,添加一个<option value="-1">--不选择--<option>,然后编程判断select选中的值如果是-1就认为是不选择。
select分组选项,可以使用optgroup对数据进行分组,分组本身不会被选择,无论对于下拉列表还是列表框都适用。备注

(5)<textarea>多行文本(也是表单元素)
<textarea>文本</textarea>,cols、rows属性表示行数和列数。
<textarea rows="15" cols="30">asdfasfd</textarea>

注意<textarea>1231</textarea>之间的是多行文本里面显示的内容,加了空格或者转行也会显示空格
}
10.meta标签
{
<meta>有指定name和指定http-equiv两种用法,<meta name="名字" content="值" />、<meta http-equiv="名字" content="值" />两种用法。前者是给搜索引擎看的,后面的实现功能
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />指定网页编码
<meta http-equiv="Refresh" content="3" /> 三秒钟后刷新此网页。
<meta http-equiv="Refresh" content="3;url=http://www.rupeng.com" /> 三秒钟后重定向到新网页。发帖成功后提示“发帖成功,即将转向帖子查看页面”。
<meta http-equiv="Cache-Control" content="no-cache" /> 禁止浏览器缓存页面。
}
11.DIV和Span
{
(1)
层:<div></div>将内容放到层中,就以将这些内容当成一个整体进行处理,比如整体隐藏、整体移动等。div非常强大和常用。类似于WinForm的Panel。
(2)span:div是将内容放到一个矩形的区块中,会影响布局,而span只是把一段内容定义成一个整体进行操作,但不影响布局、显示。
}
12.CSS样式
{
CSS(层叠样式表)是用来美化页面用的,可以对页面元素进行更精细的设置,样式主要描述元素的字体颜色、背景颜色、边框等。CSS主要有元素内联、页面嵌入和外部引用三种使用方式。CSS是描述元素的皮肤!
(1)元素内联(行内样式),直接将样式写入元素的style属性中,<input type="text" readonly="readonly" style="background-color: #FF00FF" />,适用于样式没有可复用性的场合。
(2)
页面嵌入:在head中加入
<style type="text/css">
input{border-color:Yellow;color:Red;}
</style>
表示页面中所有input都是采用指定的样式。适合于样式复用,减小页面体积
(3)
外部引用,将css内容写入css后缀的文件
textarea{background:yellow}
然后在页面中引用,在head中加入
<link type="text/css" rel="Stylesheet" href="s1.css" />
适合于多个页面共享css。
可以以拖页面的方式来快速引用
}
13.样式属性
{
(1)css计量单位:css中表示宽度、距离时有多种计量单位:px(像素)、30%(百分比)、em(相对单位)等。width:20px。
(2)
background-color:Red;背景颜色;color:文本颜色
background-image:url(images/bg.jpg)背景图片
background-repeat : repeat | no-repeat | repeat-x | repeat-y
参数:
repeat :  背景图像在纵向和横向上平铺
no-repeat :  背景图像不平铺
repeat-x :  背景图像在横向上平铺
repeat-y :  背景图像在纵向平铺

background-position:设置或检索对象的背景图像位置
(3)
text-decoration :
检索或设置对象中的文本的装饰。 none || underline || blink || overline || line-through
参数:
none :  无装饰
blink :  闪烁
underline :  下划线
line-through :  贯穿线
overline :  上划线
复合样式 background border
(4)
border:solid 1px red
border-style:solid;边框风格,实线solid(默认是没有),还有dotted(点)等值;border-color:边框颜色;border-width:边框宽度(默认是0)。例子:style="border-color:Red;border-width:1px;border-style:dotted;"
(5)
display:元素是否显示,可选值none(不显示,不占地儿)、block (显示为块级元素,此元素前后会带有换行符。)、inline(显示为内联元素,元素前后没有换行符 )等。
(6)
cursor,鼠标在元素上时显示的光标图标,可选值:cursor(默认光标)、pointer(超链接上的手)、text(输入Bean)、wait(忙沙漏)、help(帮助)等。还可以通过cursor:url(dinosau2.ani)使用ani、cur格式的自定义光标图片。
(7)
LI不显示圆点:LIST-STYLE-TYPE: none;一般设在li或者ul上
}
14.盒子模型
{
在CSS中,如DIV DIV边框与页面之间有边距,为
margin

而DIV里面的元素与DIV边框的间距为padding

border则为边框
div
{
width:200px;
height:200px;
background-color:Red;
margin-bottom:10px;
padding:10px 50px;
filter:alpha(opacity=50);设置或检索对象所应用的滤镜效果。这里设置不透明度为50%,只支持IE
要使用该属性,对象必须具有height,width,position三个属性中的一个。

opacity:0.5;
在其他游览器设置该属性,能达到不透明度为50%的效果
}
}
15.样式选择器
{
(1)标签选择器,对于指定的标签采用统一的样式
如争对input标签
input
{border-color:Yellow;color:Red;}
(2)class选择器,以定义一个命名的样式,然后在用到它的时候设定元素的class属性为样式的名称,还可以同时设定多个class,名称之间加空格
.warning{background:Yellow;}
.highlight{font-size:xx-large;cursor:help;}
<table><tr><td class="highlight">aaa</td><td class="warning">bb</td><td class="highlight warning">ccc</td></tr></table>

当多个类样式中 有冲突依然是就近原则

(3)标签+class选择器
class选择器也可以针对不同的标签,实现同样的样式名对于不同的标签有不同的样式,只要在样式名前加标签名即可。
input.accountno{text-align:right;color:Red;}
label.accountno{font-style:italic;}
<input class="accountno" type="text" value="111111111111111" />
<lab
el class="accountno">333333333333333333</label>
(4)
id选择器
为指定id的元素设定样式,id前加#
#username
{
font-size:xx-large;
}
<input id="username" type="text" value="aaaaaaaaaaaa" />

id选择器要指定一个内容时需要嵌套,如
#1 #2 #3 则针对#1里面的#2里面的#3进行设定
(5)
style、class可以同时组合使用
<input id="username" class="accountno" style="font-size:xx-large" type="text" value="aaaaaaaaaaaa" />
(6)
更多选择器(*)
*
{
这里设定的内容可以应用于全局
}
*
{
margin:0px;
padding:0px;
}
去除全局的边框之间距离,元素和边框的距离
(7)
包含选择器:
P strong{ background-color:Yellow}
表示P标签内的strong标签内的内容使用的样式
<strong>fadsfasdfads</strong>
<p><strong>adfasfd</strong></p>
(8)
组合选择器,同时为多个标签设定一个样式
H1,H2,input{background-color:Green}
<h1>nihao</h1>
<input type="text" value="test" />
(9)
伪选择器
伪选择器:为标签的不同状态设定不同的样式:
A:visited:超链接点击过的样式;A:active:选中超链接时的样式;A:link:超链接未被访问时的状态;A:hover:鼠标移到超链接时的状态。
A:visited {TEXT-DECORATION: none}
A:active {TEXT-DECORATION: none}
A:link {TEXT-DECORATION: none}
A:hover {TEXT-DECORATION: underline}

使用时有顺序之分,遵守 LoVe HAte

说明:TEXT-DECORATION: none表示超链接不显示下划线。
}
16细边框表格
{
设置了表格的border=“1px” 因为表格边线有重叠,所以表格的边线显示比较粗。
可以使用css去重重叠
(1)
使用css 先给Table加上1px的border- bottom,border- right
再给td加上1px的border- left,border- top
(2)
border-collapse:collapse;
设置或检索表格的行和单元格的边是合并在一起还是按照标准的HTML样式分开。
这里的属性为相邻边被合并

使用ul和li制作横向和纵向菜单
见代码
布局最重要的一个属性就是float
}
17.网页布局
{
(1)框架布局
Frameset 框架页里不能有body
<frameset rows="30%,70%" >
<frame src="top.htm" noresize/>
<frameset cols="20%,80%">
<frame src="left.htm" noresize/>
<frame src="main.htm" noresize/>
</frameset>
</frameset>
iframe
<iframe src="iframe.htm" name="0" width="0" height="0"></iframe>
(2)表格布局

(3)DIV+CSS布局
网页布局就是“这块内容显示在左边,那两块内容并排显示,那块内容漂浮在页面上”。
不要使用table进行布局,因为:table可能会在所有tr、td加载完成以后才显示,所以加载完成之前界面是一片空白;用table布局会将布局方式写在html中,违反了“语义性”原则;用table会影响搜索引擎的抓取,不利于SEO。因此Table用来表达真实表格状数据的东西,布局用Div(层)+Css来做,Div用来圈定元素,CSS用来定义元素的位置。
Div+CSS就是将要布局的内容用<div>切成块,然后使用css描述每个块的大小、位置等。

详见代码
}
18文档流
{
文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素。
(1)position:absolute;绝对定位,
即完全脱离文档流相对于position属性非static值的最近父级元素进行偏移,窗口移动相对屏幕的话会移动

absolute不占原来的位置,后面的DIV会把这个位置顶替掉
position:absolute;
z 轴 ,值越大,在屏幕最前,必须脱离文档流
z-index:100; 这时,脱离文档流的这个DIV显示在最前面

(2)position:relative;相对定位,
这个属性值保持对象所在文档流中的位置,相对于元素在文档流中位置进行偏移. 但保留原占位.可以设置top, left, right, bottom定位

relative占原来的位置,

(3)position:fixed;固定定位,即完全脱离文档流, 相对于视区进行偏移.

,比如常见的右下角广告小窗口
position:fixed;
bottom:0px;
right:0px;
position:static; 默认值 文档流
}
19.JavaScript概念
{
(1)JavaScript是一种脚本语言。
脚本,一条条的文字命令。执行时由系统的一个解释器,将其一条条的翻译成机器可识别的指令,然后执行。常见的脚本:批处理脚本、T-SQL脚本、VBScript等。
(.net生成的exe文件用记事本打开看不懂。它是整体预编译然后再执行的)
(2)JavaScript代码放到<script>标签中,script可以放到<head>、<body>等任意位置,而且可以有不止一个<script>标签。默认值就是当前时间。JS是大小写敏感的。

放到<head>中的<script>在body加载之前就已经运行了。写在body中的<script>是随着页面的加载而一个个执行的。

(3)JavaScript是弱类型语言(声明变量都用var),不存在int n=10;string s=“a”;的情况,所有变量都用var。因为是“动态类型”,所以下面这段代码是合法的:var n=10;n=“a”;
(4)
Js的注释,与C#、Java的相同(//单行注释、/* 多行注释 */)。
(5)JavaScript中也有事件的概念,当按钮被点击的时候也可以执行JavaScript:
<input type="button" onclick="alert(99)" value="久久"/>
只有超链接的href中的JavaScript中才需要加“”javascript:”,因为它不是事件,而是把“”javascript:”看成像“http:”、“ftp:”、“thunder:/
}
20.JavaScript语法
{
(1)变量声明:JS中所有的变量声明都用var
而在C#中var是类型推断,必须定义变量时赋值。

变量使用前可以不用var声明,这样的变量会变认为是“全局变量”(不推荐)

JavaScript中即可以使用双引号声明字符串,也可以使用单引号声明字符串。主要是为了方便和html集成,避免转义符的麻烦。

alert(typeof(str))

(2)JavaScript中的null与undefined
(2.1)undefined,表示一个未知状态
声明了但是没有初始化的该变量,变量的值是一个未知状态(undefined)。?(访问不存在的属性或对象window.xxx)

方法没有明确返回值时,返回值是一个undefined.

当对未声明的变量应用typeof运算符时,显示为undefined(*)
(2.2)
ull表示尚未存在的对象,null是一个有特殊意义的值。可以为变量赋值为null,此时变量的值为“已知状态”(不是undefined),即null。(用来初始化变量,清除变量内容,释放内存)

(2.3)
始化变量,清除变量内容,释放内存)
undefined==null //结果为true,但含义不同。
undefined===null //false(*),先判断类型是否一致,然后判断值。

(2.4)
== 判断变量的值是否相等
=== 全等 !== 值相等并且类型相同

(3)JS中的判断变量是否可用
JavaScript中判断已声明变量、参数是否初始化(可用)的方法:

假设已有变量x:
if (typeof(x) !=‘undefined’ && x!=null)

{ alert("可用"); }
可以简化写成
if(x)
{ alert(‘变量可用!’); } else { alert(‘变量不可用!’); } //null、undefined、’’、0都认为是false

当x声明但没有赋值,或x为null, undefined ,空字符串,或x为0时,都表示不可用!// if(x),返回false

推荐用最后一种方法。但如果x有可能没有声明,则只能用typeof判断(否则会报错)。

经常会遇到的一个场景:if语句的小括号中直接写一个变量。各种值与Boolean之间的关系。

(4)函数的声明
(4.1)JavaScript中声明函数的方式:
function add(i1, i2) {
return i1 + i2;
}
不需要声明返回值类型、参数类型。函数定义以function开头。

var r = add(1, 2);
alert(r);

调用方法时,不带()时是直接输出整个方法的。

(4.2)JavaScript中不像C#中那样要求所有路径都有返回值,没有返回值就是undefined。

(5)arguments对象
(5.1)JavaScript中没有方法重载。
假如几个方法的方法名相同,则执行的事最后一个方法,不管在哪里调用的这个方法名字的方法,因为JS会先检查所有的方法。
(5.2)动态为方法传递参数,类似于.net中的params关键字作用
<script type="text/javascript">
function myFunc() {
for (var i = 0; i < arguments.length; i++) {
document.write(arguments[i]);
document.write('<br/>');
}
}
myFunc('张三', 18, '李四', 19);
</script>


(5)匿名函数
相当于 c#中的委托
var f1 = function(i1, i2) {
return i1 + i2;
}
alert(f1(1,2));
}
21.JS面向对象
{
(1)在JS中,函数就是对象,对象就是函数。
方法直接调用为函数,用new调用为对象。
JavaScript中没有类的语法,是用函数闭包(closure)模拟出来的。
(2)定义一个对象
function Person() { }
(3)使用一个对象
var p=new Person();
p.Name=‘张三’;//动态语言,所以可以直接写。
p.Age=30;
p.SayHello=function() { alert(‘Hi~’); }
alert(p.Name);
alert(p[‘Age’]);//另外一种动态访问属性的方式。

(4)使用对象的另一种方法,类似C#的构造方法
JavaScript同样支持this关键字
构建一个带参数的Person对象。通过this关键字为对象的属性赋值。
function Person(name, age) {
this.name = name;
this.age = age;
this.showInfo = function() {
alert('大家好,我叫' + this.Name + ',今年' + this.Age + '岁了。'); }}
var zjl = new Person('周杰伦', 20);
zjl.showInfo();
function Person(name,age)可以看做是声明构造函数,Name、Age这些属性也是使用者动态添加了。
new 相当于创建了函数的一个实例。
}
22.String对象
{
(1)
length属性:获取字符串的字符个数。(无论中文字符还是英文字符都算1个字符。)
var s = "11 22 33 99 3";
alert(str.length);
(2)
charAt(index)方法:获取指定索引位置的字符。(索引从0开始)
(3)
indexOf(‘字符串’,startIndex 或者lastIndexOf)方法:获取指定字符串第一次出现的位置。startIndex表示从第几个开始搜索。
(4)
split(‘分隔符’,limit);根据分隔符将一个字符串返回为一个数组。
(5)
substr(startIndex,len)从startIndex开始,截取len个字符。
(6)
substring(startIndex,stopIndex)从startIndex开始,截取到stopIndex位置(不包括stopIndex所在的字符)。
(7)
toUpperCase()转换大写
toLowerCase();转换小写
}
23.JS中的正则表达式
{
(1)
JavaScript中创建正则表达式类的方法:
var regex = new RegExp("\\d{5}")
或者 var regex = /\d{5}/
(2)
RegExp对象的方法:
(1)test(str)判断字符串str是否匹配正则表达式,相当于IsMatch
var regex = /.+@.+/;
alert(regex.test("a@b.com"));
alert(regex.test("ab.com"));
(2)exec(str)进行搜索匹配,返回值为匹配结果,没找到返回null(*)
var reg = /.+@.+/;
var a = reg.exec("123abc.com");
alert(a);
(3)
.string的正则表达式方法
String对象中提供了一些与正则表达式相关的方法,相当于对于RegExp类的包装,简化调用:
match(regexp),相当于调用exec
var s = "aaa@163.com";
var regex = /(.+)@(.+)/;
var match = s.match(regex);
alert(RegExp.$1 + ",服务器:" + RegExp.$2);
(4)
g 全局匹配
var str = "北京 北京 北京";
alert(str.replace(/北京/g, "邯郸"));
i 忽略大小写
gi 全局 忽略大小写
var s = "AAAAbbaa";
alert(s.match(/a+/gi));
}
24.Array对象
{
(1)
JavaScript中的Array对象就是数组,首先是一个动态数组,而且是一个像C#中数组、ArrayList、Hashtable等的超强综合体。
var names = new Array();
names[0] = "tom";
names[1] = "jerry";
names[2] = "lily";
for (var i = 0; i < names.length; i++) {
alert(names[i]);
}
(2)
简化赋值var arr = [‘China’, 2008, true, ‘Hello’];
无需预先制定大小,动态。

(3)
JS中的Array是一个宝贝,不仅是一个数组,还是一个Dictionary,还是一个Stack。
var pinyins = new Array();
pinyins["人"] = "ren";
pinyins["口"] = "kou";
pinyins["手"] = "shou";
alert(pinyins["人"]);
alert(pinyins.人);
像Hashtable、Dictionary那样用,而且像它们一样效率高。

(4)对于数组风格的Array来说,可以使用join方法拼接为字符串
var arr = ["tom","jim","lily"];
alert(arr.join(","));
JS中join是array的方法,不像.Net中是string的方法
}
25.Json对象
{
(1)
对象是一个无序的“‘名称/值’对”集合。
一个对象以“{”(左括号)开始,“}”(右括号)结束。每个“名称”后跟一个“:”(冒号);“‘名称/值’ 对”之间使用“,”(逗号)分隔。
(2)
定义个简单的Json
var json = { "name": "张三", "age": 18, "sex": "男" };

for (var key in json) {
alert(key + "==" + json[key]);
}

(3)
数组是值(value)的有序集合。一个数组以“[”(左中括号)开始,“]”(右中括号)结束。值之间使用“,”(逗号)分隔。

值(value)可以是双引号括起来的字符串(string)、数值(number)、true、false、?null、对象(object)或者数组(array)。这些结构可以嵌套。
}
26.遍历
{
for循环可以像C#中的foreach一样用
for循环还可以获得一个对象所有的成员,类似于.Net中的反射
for (var e in document) {
alert(e);
}
有了它没有文档也可以进行开发。
}
27.扩展方法
{
通过类对象的prototype设置扩展方法,下面为String对象增加quote(两边加字符)方法
String.prototype.quote = function(quotestr) {
if (!quotestr) {
quotestr = "\"";
}
return quotestr + this + quotestr;
};
alert("abc".quote()); alert("abc".quote("|"));
扩展方法的声明要在使用扩展方法之前执行。JS的函数没有专门的函数默认值的语法,但是可以不给参数传值,不传值的参数值
}
28.DOM
{
DOM就是Html页面的模型,将每个标签都做为一个对象,JavaScript通过调用DOM中的属性、方法就可以对网页中的文本框、层等元素进行编程控制。比如通过操作文本框的DOM对象,就可以读取文本框中的值、设置文本框中的值。
DOM也像WinForm一样,通过事件、属性、方法进行编程。

//节点 node :元素(标签) 文字 属性 注释
//元素 element : 标签
}
29.DOM事件
{
(1)DOM简介
{
<body onmousedown=“alert(‘别点我!’);”>//注意body的范围。
有时事件的响应代码比较多,就要放到一个函数中:
<script type="text/javascript">
function userMouseDown() {
alert('网页被你点坏了>_<~~,赔吧!');
alert('逗你玩呢~~');
}
</script>
<input type="button" value="按钮" onmousedown=“userMouseDown();" />
onmousedown=“userMouseDown();”中,
注意: userMouseDown后的括号不能丢(不能写成onmousedown=“userMouseDown” ),带()表示调用函数,直接写函数名表示设置事件的处理函数为userMouseDown。
}
(2)window对象(Dom中的一个顶级对象。)
{
window对象代表当前浏览器窗口。
使用window对象的属性、方法的时候可以省略window。
能不写window就不要写,这样可以减少js文件的字节数。
(2.1)
window.alert(‘大家好!’);//弹出警告对话框
(2.2)
window.confirm(‘确定要删除吗?’);//确定、取消对话框,返回true或false;
(2.3)
window.navigate(url);//将网页重新导航到url,只支持IE、Opera11.6,建议使用window.location.href=‘url’;//支持大多数浏览器
<input type="button" value="导航" onclick=" window.navigate('http://www.baidu.com');" />
(2.4)
window.setInterval(code,delay)//每隔一段时间执行指定的代码(类似于winForm中的Timer控件。)
第一个参数:指定的代码字符串
第二个参数:时间间隔(毫秒数)
var intervalId=setInterval(“alert(‘hello’);”,1000);
(2.5)
window.clearInterval(intervalId);//停止计时器
clearInterval()取消setInterval的定时执行,相当于Timer中的Enabled=False。因为setInterval可以设定多个定时,所以clearInterval要指定清除那个定时器的标识,即setInterval的返回值。
(2.6)
setTimeout也是定时执行,但是不像setInterval那样是重复的定时执行,只执行一次,clearTimeout也是清除定时。很好区分:Interval:间隔;timeout:超时。
var timeoutId = setTimeout("alert('hello')", 2000);
(2.7)
window.location对象:
window.location.href=‘’;//重新导航到新页面,可以取值,也可以赋值。
window.location.reload();//刷新当前页
}
}
30.body对象的事件
{
(3.1)onload(页面加载后触发)
网页加载完毕时触发,浏览器是一边下载文档、一边解析执行,可能会出现JavaScript执行时需要操作某个元素,这个元素还没有加载,如果这样就要把操作的代码放到body的onload事件中,或者可以把JavaScript放到元素之后。元素的onload事件是元素自己加载完毕时触发,body onload才是全部加载完成。
使用:
<body onload="test()">

window.控件Id(不建议使用)
document.getElementById(“控件Id”);(推荐)
}
31.其他事件
{
除了属性之外,当然还有通用的HTML元素的事件:onclick(单击)、ondblclick(双击)、onkeydown(按键按下)、onkeypress(点击按键)、onkeyup(按键释放)、onmousedown(鼠标按下)、onmousemove(鼠标移动)、onmouseout(鼠标离开元素范围)、onmouseover(鼠标移动到元素范围)、onmouseup(鼠标按键释放)、oncontextmenu(在浏览器中单击鼠标右键显示”右键菜单”时触发)等。
}
32Window.enen
{
(1) window.event是IE下非常重要的属性,用来获得发生事件时的信息,事件不局限于window对象的事件,所有元素的事件都可以通过event属性取到相关信息。类似于winForm中的e(EventArgs)。
window.event.
altKey属性,bool类型,表示事件发生时是否按下了alt键。类似的还有ctrlKey,shiftKey。演示:
if (event.altKey && event.ctrlKey) {
location.href = "04-跑马灯.htm";
}
(2)window.event的属性:
//鼠标在文档中的位置
//document.title = event.clientX + "==" + event.clientY;
clientX、clientY 发生事件时鼠标在客户区的坐标;screenX、screenY
//鼠标在屏幕中的位置
//document.title = event.screenX + "==" + event.screenY;
发生事件时鼠标在屏幕上的坐标;offsetX、offsetY

//相对于当前元素的偏移位置
//document.title = event.offsetX + "==" + event.offsetY;
发生事件时鼠标相对于事件源(比如点击按钮时触发onclick)的坐标。
(3)
(window.event.returnValue)returnValue属性,如果将returnValue设置为false,就会取消默认行为的处理。在超链接的onclick里面禁止访问href的页面。在表单校验的时候禁止提交表单到服务器,防止错误数据提交给服务器、防止页面刷新。(onsubmit="window.event.returnValue=false;")
例子:
function turn(right) {
alert("111");
if (!right) {
//取消a标签的默认行为
window.event.returnValue = false;
}

<a href="http://www.cnbeta.com" onclick="turn(0)">cnbeta</a>

function check() {
if (document.getElementById("txt").value == "") {
alert("请输入用户名");
//取消submit的默认行为
window.event.returnValue = false;
}
}
<input type="submit" onclick="check()" />

(4)window.event的属性:
srcElement:获得事件源对象。几个按钮共享一个事件响应函数用。****_click(object sender,EventArgs e)
button,发生事件时鼠标按键,IE:1为左键,2为右键,s4中滑轮
除IE浏览器外,其他浏览器在绑定事件处理函数时,有一个默认的参数即event对象。
(*)screen对象,获取屏幕的信息:
alert("分辨率:" + screen.width + "*" + screen.height);
if (screen.width < 1024 || screen.height < 768) {
alert("分辨率太低!");
}
}
}
33.clipboardData对象
{
(1)setData("Text",val),设置粘贴板中的值。
function share() {
var txt = t.value;
//设置粘贴板
window.clipboardData.setData("text", txt);
}
(2)getData(“Text”)读取粘贴板的值,返回值为粘贴板中的内容;
function copy() {
//获取粘贴板中的内容
var txt = clipboardData.getData("text");
t1.value = txt;
}
(3)clearData(“Text”)清空粘贴板;

(4)禁止复制和剪切!
<input type="text" value="" oncopy="alert('禁止复制');event.returnValue=false" oncut="event.returnValue=false"/>
(5)history操作历史记录。
window.history.back()后退;window.history.forward()前进。
window.history.go(-1)后退、window.history.go(1)前进
}
34.document对象
{
document的方法:
(1)write();向文档中写入内容。
writeln(),和write差不多,只不过最后添加一个回车。在onclick等事件中写的代码会冲掉页面中的内容,只有在页面加载过程中write才会与原有内容融合在一起。writeln()是在源代码里面换行。与<br/>不一样。
(2)getElementById(), (非常常用),根据元素的Id获得对象,网页中id不能重复。也可以直接通过元素的id来引用元素,但是有有效范围、form1.textbox1之类的问题(当元素放在form中的时候(在html页面中需要通过form.元素id)),因此不建议直接通过id操作元素,而是通过getElementById。
(3)getElementsByName(),根据元素的name获得对象,由于页面中元素的name可以重复,比如多个RadioButton的name一样,因此getElementsByName返回值是对象数组。
(4)getElementsByTagName(),获得指定标签名称的元素数组,比如getElementsByTagName(“p”)可以获得所有的<p>标签。*表示所有标签。
function bodyload() {
var inputs = document.getElementsByTagName("input");
for (var i = 0; i < inputs.length; i++) {
//判断是不是文本框
if (inputs[i].type == "text") {
inputs[i].value = i + 1;
}
}
}
}
35.事件冒泡
{
事件冒泡:如果元素A嵌套在元素B中,那么A被点击不仅A的onclick事件会被触发,B的onclick也会被触发。触发的顺序是“由内而外” 验证:在页面上添加一个table、table里有tr、tr里有td,td里放一个p,在p、td、tr、table中添加onclick事件响应,
<table onclick="alert('table onclick');">
<tr onclick="alert('tr onclick');">
<td onclick="alert('td onclick');"><p onclick="alert('p onclick');">aaaa</p></td>
<td>bbb</td>
</tr>
</table>

取消事件冒泡: window.event.cancelBubble = true;//IE下的写法。
}
36.onload
{
1.二者效果完全一样,都是在页面内容都加载完毕后才触发。
2.由于网页中没有window所以在body中写onload
3.建议使用window.onload//使用js脚本的方式高效
4.其实应该是document.onload,但是所有浏览器都实现到了window对象上。
window.onload=function(){
}
}
37.this
{
事件中的this。除了可以使用event.srcElement在事件响应函数中,this表示发生事件的控件。只有在事件响应函数才能使用this获得发生事件的控件,在事件响应函数调用的函数中不能使用(这里的this表示window对象),如果要使用则要将this传递给函数或者使用event.srcElement。(*)this和event.srcElement的语义是不一样的,this就是表示当前监听事件的这个对象,event.srcElement是引发事件的对象:事件冒泡。
<body onclick=“//这个叫做事件响应函数,在这里写this表示发生事件的控件。在这里调用另外一个函数F1,则F1中不能使用this表示发生事件的控件”>
}
38.动态创建DOM
{
document.write只能在页面加载过程中才能动态创建。
可以调用document的createElement方法来创建具有指定标签的DOM对象,然后通过调用某个元素的appendChild();方法将新创建元素添加到相应的元素下。//父元素对象.removeChild(子元素对象);删除元素。
function showIt() {
var divMain = document.getElementById("divMain");
var btn = document.createElement("input");
btn.type = "button";
btn.value = "我是动态的!";
divMain.appendChild(btn);
}
<div id="divMain"></div>
<input type="button" value="ok" onclick="showit()" />
}
39.innerText和innerHTML
{
用innerHTML也可以替代createElement,属于简单、粗放型、后果自负的创建。
function createlink() {
var divMain = document.getElementById("divMain");
divMain.innerHTML = "<a href='http://www.rupeng.com'>如鹏网</a>";}

innerText只能设置纯文本,即便写了html代码,也会对html代码进行编码,
innerHTML可以设置html代码和纯文本。
}
40.控制层的显示
{
(1) 默认的时候,假如不设定div1.style.display,alterc出来是为空
(2) div1.style.display = 'none'
设置层的隐藏
(3) div.style.display = "block";
设置层的显示

没有设置.style.display= "" ,会以id选择器设置的display为准
}
41.几个特殊事件
{
(1)onchange事件
文本改变时,并没有触发事件
只有当失去焦点的时候,才会触发事件。
(2)click()。
就是用代码来触发点击按钮的动作
var btn = document.getElementById("btn");
//相当于点击了一下按钮
btn.click();
(3)focus()
获得焦点的事件,如打开页面焦点自动在登陆框
var txt = document.getElementById("txtPwd");
txt.focus();
(4)blur();
失去焦点的事件
(5)submit()
提交表单事件,和blur()配合使用可以验证用户名是否已经存在
if (this.value != "") {
//表单自动提交
var form = document.getElementById("f1");
//表单自动提交
form.submit();
}
(6)onsubmit()
用于判断表单信息是否正确,否则在该事件里return false
onsubmit 只有点击提交按钮的时候才触发
表单的submit()方法,不会触发该事件
(7)onkeydown
onkeydown 键盘落下,字符还没有录入到文本框
(8)onkeyup
onkeyup 键盘弹起 字符已经到文本框
(9)event.keyCode
对应的按键码
}
42.设置元素位置,大小
{
通过dom读取元素的top、left、width、height等取到的值不是数字,而是“10px”这样的字符串;为这些属性设值的时候IE可以是80、90这样的数字,FF、Chrome必须是“80px”、“90%”等这样的字符串形式,为了兼容统一用字符串形式。left/top需要设置position

易错:不要写成div1.style.width=80px,而是div1.style.width=‘80px’;

如果要修改元素的大小(宽度加1),则首先要取出元素的宽度,然后用parseInt将宽度转换为数字(parseInt可以将“20px”这样数字开头的包含其他内容的字符串解析为20,parseInt(‘22px’,10),也就是解析尽可能多的部分);然后加上一个值,再加上px赋值回去。

//!!!!!别忘了 px
div.style.width = width + 20 + "px";
div.style.height = height + 20 + "px";
}
43.setAttribute
{
创建元素属性及赋值,可以创建自定义的属性
label.setAttribute(“for”, “username”);

var index = parseInt(this.getAttribute("index"));
}
44透明度的设置
{
(1)获得IE里面的透明度的数值
var num = div.style.filter.replace("alpha(opacity=","").replace(")","");
(2)设置IE里面的透明度的数值
num = parseInt( num) - 10;
div.style.filter = "alpha(opacity=" + num + ")";
(3)chrome设置透明度
d1.style.opacity = "0.5";
}
45.鼠标的坐标位置
{
例子:跟着鼠标走的图片
var img = document.getElementById("i1");
img.style.position = "absolute";
//图片脱离文档流
// !!!!!!!!!!别忘了px
img.style.left = event.clientX - 10 + "px";
img.style.top = event.clientY - 10 + "px";
}
46.文档居中
{
//document.documentElement 根节点 整个文档的高度和宽度
var x = (document.documentElement.clientWidth - div.clientWidth) / 2;
var y = (document.documentElement.clientHeight - div.clientHeight) / 2;

div.style.left = x + "px";
div.style.top = y + "px";
}
47.返回一个空值,childNodes,children
{
href="javascript:void(0)"
childNodes //元素 文本 注释 ie中会忽略空白行,chome不会
children //元素
}
48.

 

 

 

 

 

posted @ 2012-09-25 23:34  美国如来不如中国上帝  阅读(380)  评论(0编辑  收藏  举报