JavaScript的学习整理(一)
目录:
1.换皮肤功能
2.显示/隐藏(点击切换)
3.显示/隐藏(onmouseover/onmouseout)
4.选项卡
5.全选/不选/反选(checkbox)
6.简易日历
1、换肤功能——实质是改变链接的css文件
step 1.先通过id获取需要修改的部分(link); step 2.通过 href 改变 需要链接的css文件;
下面我写了一个小的代码,只是用于改变页面背景颜色来供大家参考学习。
-
<input type="button" value="skin1" onclick="skin_1()"/>
-
<input type="button" value="skin2" onclick="skin_2()"/>
-
<script>
-
function skin_1()
-
{
-
var oL=document.getElementById('11');
-
oL.href="1.css";
-
}
-
function skin_2()
-
{
-
var oL=document.getElementById('11');
-
oL.href="2.css";
-
}
-
</script>
其中,1.css文件:
-
body{
-
background:#2A5698;
-
}
2.css 文件:
-
body{
-
background:pink;
-
}
2、显示隐藏效果(点击切换)
其中,none:隐藏 block:显示
-
<input type="button" value="显示/隐藏" onclick="showHide()"/>
-
<div id="div1">点击显示,点击隐藏</div>
-
-
<style>
-
#div1{width:200px; height:100px; background:lightblue; display:none;}
-
</style>
-
-
<script>
-
-
function showHide()
-
{
-
var oDiv=document.getElementById('div1');
-
if(oDiv.style.display=='block')
-
{
-
oDiv.style.display='none';
-
}
-
else
-
{
-
oDiv.style.display='block';
-
}
-
}
-
</script>
3、显示/隐藏(当鼠标悬浮在区域时显示文字,离开则隐藏效果)
-
<input type="text" value="显示/隐藏" onmouseover="document.getElementById('div2').style.dispaly='block';" onmouseout="document.getElementById('div2').style.display='none';">
-
<div id="div2">这里是需要显示的内容:</div>
-
-
<style>
-
#div2{width:200px; height:100px; background:green; }
-
</style>
4、选项卡
选项卡:主要是改变 当前显示的div,通过改变className。 用到的知识有:①循环;②初始化;③this指针;
-
<!DOCTYPE HTML>
-
<html>
-
<head>
-
<meta charset="utf-8">
-
<title>JAVAscript</title>
-
</head>
-
<body>
-
<div id="div3">
-
<input class="active" type="button" value="教育"/>
-
<input type="button" value="培训"/>
-
<input type="button" value="招生"/>
-
<input type="button" value="出国"/>
-
<br/>
-
<div style="display:block;">11111</div>
-
<div>22222</div>
-
<div>33333</div>
-
<div>44444</div>
-
</div>
-
-
<style>
-
#div3 .active{background:yellow;}
-
#div3 div{width:300px; height:200px;border:1px solid green;background:lightpink;display:none;}
-
</style>
-
-
<script>
-
/*
-
*4、选项卡:主要是改变 当前显示的div,通过改变className。
-
*/
-
window.onload=function()
-
{
-
var oDiv=document.getElementById('div3');
-
var aBtn=oDiv.getElementsByTagName('input');
-
var aDiv=oDiv.getElementsByTagName('div');
-
-
for(var i=0;i<aBtn.length;i++)
-
{
-
aBtn[i].index=i;
-
aBtn[i].onclick=function()
-
{
-
for(var i=0;i<aBtn.length;++i)
-
{
-
//初始化
-
aBtn[i].className='';
-
aDiv[i].style.display='none';
-
}
-
//alert(this.value);
-
this.className='active';
-
aDiv[this.index].style.display='block';
-
};
-
}
-
-
};
-
</script>
-
</body>
-
</html>
5、全选/不选/反选
选择--checked 其中:checked=true 勾选, checked=false 不选, **注意没有引号。
-
<input type="button" id="btn11" value="全选"/>
-
<input type="button" id="btn22" value="不选"/>
-
<input type="button" id="btn33" value="反选"/> <br/>
-
<div id="div4">
-
<input type="checkbox">1<br/>
-
<input type="checkbox">2<br/>
-
<input type="checkbox">3<br/>
-
<input type="checkbox">4<br/>
-
<input type="checkbox">5<br/>
-
<input type="checkbox">6<br/>
-
</div>
-
-
<script>
-
/*
-
*7、选择--checked
-
*checked=true 勾选, checked=false 不选,
-
*注意没有引号。
-
*/
-
window.onload=function()
-
{
-
var But1=document.getElementById('btn11');
-
var But2=document.getElementById('btn22');
-
var But3=document.getElementById('btn33');
-
var oDiv=document.getElementById('div4');
-
var oCh=oDiv.getElementsByTagName('input');
-
-
//全选
-
But1.onclick=function()
-
{
-
for(var i=0;i<oCh.length;i++)
-
{
-
oCh[i].checked=true;
-
}
-
};
-
//不选
-
But2.onclick=function()
-
{
-
for(var i=0;i<oCh.length;i++)
-
{
-
oCh[i].checked=false;
-
}
-
};
-
//反选
-
But3.onclick=function()
-
{
-
for(var i=0;i<oCh.length;i++)
-
{
-
if(oCh[i].checked==false)
-
{oCh[i].checked=true;}
-
else
-
{oCh[i].checked=false;}
-
}
-
};
-
};
-
</script>
6、简易日历
简易日历:(综合应用) 涉及到的知识点有:①循环;②数组;③选项卡切换;④this.index;⑤innerHTML
-
<!DOCTYPE HTML>
-
<html>
-
<head>
-
<meta charset="utf-8">
-
<title>JAVAscript</title>
-
-
<style>
-
#div5{height:650px;width:370px;border:1px solid black;font-family:Arial;
-
font-size:15px;background:#E6E6E4;}
-
#div5 li{list-style-type:none;border:1px solid gray;width:90px;height:90px;float:left;margin-right:5px;
-
margin-top:5px;background:black;color:white;}
-
.text{margin-left:40px;margin-top:0px;width:285px;height:200px;border:1px solid #F7F7F5;float:left;background:#EEEEEE;}
-
#div5 .active{background:white;color:#BC647B;border:1px solid black;}
-
</style>
-
<pre name="code" class="html"></head>
-
<body>
-
<div id="div5">
-
<center>
-
<ul>
-
<li class="active"><h2>1</h2><p>JAN</p></li>
-
<li><h2>2</h2><p>FEB</p></li>
-
<li><h2>3</h2><p>MAR</p></li>
-
<li><h2>4</h2><p>APR</p></li>
-
<li><h2>5</h2><p>MAY</p></li>
-
<li><h2>6</h2><p>JUN</p></li>
-
<li><h2>7</h2><p>JUL</p></li>
-
<li><h2>8</h2><p>AUG</p></li>
-
<li><h2>9</h2><p>SEP</p></li>
-
<li><h2>10</h2><p>OTC</p></li>
-
<li><h2>11</h2><p>NOV</p></li>
-
<li><h2>12</h2><p>DEC</p></li>
-
</ul>
-
<br/><br/>
-
<div class="text">
-
<h2>1月活动</h2>
-
<p>一月活动... </p>
-
</div>
-
</center>
-
</div>
-
-
<script>
-
/**
-
*6、简易日历:
-
涉及:①循环;②数组;③选项卡切换;④this.index;⑤innerHTML
-
*/
-
window.onload=function()
-
{
-
var arr=['一月活动...','二月活动...','三月活动...','四月活动...','五月活动...','六月活动...','七月活动...','八月活动...','九月活动...','十月活动...','十一月活动...','十二月活动...'];
-
var oDiv=document.getElementById('div5');
-
var aLi=oDiv.getElementsByTagName('li');
-
var aTxt=oDiv.getElementsByTagName('div')[0];
-
-
for(var i=0;i<aLi.length;++i)
-
{
-
aLi[i].index=i;
-
aLi[i].onmouseover=function()
-
{
-
for(var i=0;i<aLi.length;++i)
-
{
-
aLi[i].className='';
-
}
-
this.className='active';
-
aTxt.innerHTML="<h2>"+(this.index+1)+"月活动</h2><p>"+arr[this.index]+"</p>";
-
};
-
-
}
-
};
-
</script>
-
</body>
-
</html>
javascript的学习整理(二)——小练习
题目要求:
1. 请设计一个HTML文档,文档名为html1.htm,当打开该文档时,将显示出如下的页面:
该页面为一表格:
姓名 数学 计算机 外语 总分
张三 78 92 85 255
此处总分是通过计算得到!
还有两个按钮 “修改成绩” 和“关闭窗口”
要求:1).当点击“关闭窗口”时,提示“确定关闭窗口?”,点击确定则关闭当前窗口。
2).当点击“修改成绩”按钮时,可以在屏幕的中心位置打开html2.htm文档,
html2页面为一表格,文档结构如下:
数学 计算机 外语
文本框1 文本框2 文本框3
三个文本框:分别供输入数学、计算机、外语三门课的新成绩。
另有一个按钮:“修改数据”。 点击此按钮时,提示“是否确定修改?”,如果确定则修改。将所输入的新成绩修改到父窗口中的相应位置,同时重新计算总分的值。
HTML1:
-
<!doctype html>
-
<html xmlns="http://www.w3.org/1999/xhtml">
-
<head>
-
<meta charset="utf-8">
-
<title>第三题</title>
-
<style>
-
table{width:400px;height:60px; text-align:center;}
-
input{width:55px;height:20px;}
-
.div1{width:400px;height:120px;}
-
#btn1{cursor:pointer;width:70px;height:30px;}
-
#btn2{cursor:pointer;width:70px;height:30px;}
-
/*#A{text-decoration:none;}*/
-
</style>
-
<script language="javascript">
-
//自定义提示关闭窗口
-
function custom_close()
-
{
-
if(confirm("确定关闭窗口?"))
-
{
-
window.opener=null;
-
window.open('',' _self ');
-
window.close();
-
}
-
else{}
-
}
-
function EntryPoint()
-
{
-
var style = 'dialogHeight:600px;dialogWidth:800px;center:Yes;status:no;help:0;scrool:yes';
-
var a = window.showModalDialog('html2.html', '', style);
-
//var a=window.showModalDialog("html2.html?temp="+Math.random(),"",style);
-
if (a == undefined)
-
{
-
a = window.returnValue;
-
}
-
// debugger;
-
if (a != null && a.length > 0)
-
{
-
document.getElementById("math").value = a[0];
-
document.getElementById("computer").value = a[1];
-
document.getElementById("English").value = a[2];
-
document.getElementById("sum").value =parseInt(a[0])+parseInt(a[1])+parseInt(a[2]);
-
}
-
}
-
</script>
-
</head>
-
-
<body>
-
<div class="div1">
-
<table>
-
<tr>
-
<th>姓名</th>
-
<th>数学</th>
-
<th>计算机</th>
-
<th>外语</th>
-
<th>总分</th>
-
</tr>
-
<tr>
-
<td>张三</td>
-
<td><input type="text" name="math" id="math" value="78" style="border:0px;"/></td>
-
<td><input type="text" name="computer" id="computer" value="92" style="border:0px;"/></td>
-
<td><input type="text" name="English" id="English" value="85" style="border:0px;"/></td>
-
<td><input type="text" name="sum" id="sum" value="255" style="border:0px;"/></td>
-
</tr>
-
</table>
-
<br/>
-
<center>
-
<input type="button" value="修改成绩" id="btn1" onclick="EntryPoint()"/>
-
-
<input type="submit" value="关闭窗口" id="btn2" onClick="custom_close()" />
-
</center>
-
</div>
-
</body>
-
</html>
HTML2:
-
<!doctype html>
-
<html>
-
<head>
-
<meta charset="utf-8">
-
<title>html2</title>
-
<style>
-
input{width:60px;}
-
#btn1{cursor:pointer;width:70px;height:30px;}
-
</style>
-
-
<script type="text/javascript">
-
function postValue()
-
{
-
alert("是否确定修改?");
-
var math = document.getElementById("math").value;
-
var computer = document.getElementById("computer").value;
-
var English = document.getElementById("English").value;
-
var a = new Array();
-
a[0] = math;
-
a[1] = computer;
-
a[2]=English;
-
//debugger;
-
if (window.opener != undefined)
-
{
-
//for chrome
-
window.opener.returnValue = a;
-
}
-
else
-
{
-
window.returnValue = a;
-
}
-
window.close();
-
}
-
</script>
-
</head>
-
-
<body>
-
<table>
-
<tr>
-
<th>数学</th>
-
<th>计算机</th>
-
<th>外语</th>
-
</tr>
-
<tr>
-
<td><input type="text" name="math" id="math"/></td>
-
<td><input type="text" name="computer" id="computer"/></td>
-
<td><input type="text" name="English" id="English"/></td>
-
</tr>
-
</table>
-
<input type="button" value="修改数据" id="btn1" onclick="postValue();"/>
-
</body>
-
</html>
javascript的学习整理(三)
目录 :
1、函数传参(arguments)
2、css函数的应用
3、获取非行间样式
4、数组的应用
5、json与数组的比较
1、函数传参:arguments---参数个数不确定。 arguments相当于数组。
-
<!DOCTYPE HTML>
-
<html>
-
<head>
-
<meta charset="utf-8">
-
<title>arguments的使用</title>
-
<script>
-
window.onload=function()
-
{
-
function sum()
-
{
-
var result=0;
-
for(var i=0;i<arguments.length;i++)
-
{
-
result+=arguments[i];
-
}
-
-
return result;
-
}
-
//alert(sum(2,3,4,5));
-
alert(sum(2,3,4,5,6,7,8));
-
};
-
</script>
-
</head>
-
<body></body>
-
</html>
2、css函数的使用:
-
<!DOCTYPE HTML>
-
<html>
-
<head>
-
<meta charset="utf-8">
-
<title>arguments的使用</title>
-
<script>
-
/*
-
*2、css函数:①判断arguments.length;----通过参数的长度来判断是获取样式还是设置样式。②给参数取名。增强可读性。
-
*
-
* css(对象,'属性')------获取样式;
-
* css(对象,'属性','属性值')-------设置样式
-
*/
-
function css(obj,name,value)
-
{
-
if(arguments.length==2)
-
{
-
return obj.style[name];
-
}
-
else
-
{
-
obj.style[name]=value;
-
}
-
}
-
window.onload=function()
-
{
-
var oDiv=document.getElementById('div1');
-
-
//alert(css(oDiv,'width')); //获取样式
-
css(oDiv,'background','lightblue');//设置样式;
-
};
-
</script>
-
</head>
-
<body>
-
<div id="div1" style="width:200px;height:100px;background:pink;">
-
2、css函数示例。
-
</div>
-
</body>
-
</html>
3、获取非行间样式:
① oDiv.style.width------获取行间样式
② oDiv.currentStyle.width------获取非行间样式-----------兼容性问题:只兼容IE。
③ getComputedStyle(oDiv,false).width;----火狐+chrome;(第二个参数false处,可写任意东西)-------在IE下不兼容。
④ 用if语句来解决兼容性问题
-
if(oDiv.currentStyle)
-
{
-
//IE
-
alert(oDiv.currentStyle.width);
-
}
-
else
-
{
-
//Firefox chrome
-
alert(getComputedStyle(oDiv,fasle).width);
-
}
⑤ 将常用的功能封装成一个函数,方便调用使用;
-
function getStyle(obj,name)
-
{
-
if(oDiv.currentStyle)
-
{
-
//IE
-
return obj.currentStyle[name];
-
}
-
else
-
{
-
//Firefox chrome
-
alert(getComputedStyle(obj,fasle).[name];
-
}
-
}
使用时:
getStyle(oDiv,width);
⑥ 复合样式:background、border等
单一样式:width、height、backgroundColor等
上述函数只能用于单一样式参数的提取。
4、数组的应用:
(1)定义:
-
var a=[1,2,3,4,5,6];
-
var a=new Array(1,2,3,4,5,6);
(2)常用属性的使用:length-----即可获取,也可设置
(3)数组的使用方法
a.push(元素); //在数组尾部添加元素;
a.pop(); //在数组尾部删除元素;
a.shift(); //在数组头部删除元素;
a.unshift(元素);//在数组头部添加元素;
a.splice(起点,长度);//从(起点)开始删除(长度)个元素;
a.splice(起点,0,元素,元素...);//从(起点)开始添加元素;
a.plice(起点,长度,元素...);//替换
例子:
-
<script>
-
var a=[1,2,3,4,5,6];
-
//a.push(10); //a=[1,2,3,4,5,6,10]
-
//a.pop(); //a=[1,2,3,4,5]
-
//a.shift(); //a=[2,3,4,5,6]
-
//a.unshift(9);//a=[9,1,2,3,4,5,6]
-
//a.splice(2,2);//a=[1,2,5,6];
-
//a.splice(2,0,'x','b','c');//a=[1,2,x,b,c,3,4,5,6]
-
a.splice(2,2,'x','b');//a=[1,2,x,b,5,6]
-
-
//alert(a);
-
</script>
-
(4)数组的链接concat
-
-
var a=[1,2,3];
-
var b=[4,5,6];
-
a.concat(b); //1,2,3,4,5,6
-
b.concat(a); //4,5,6,1,2,3
(5)数组的拼接join
-
-
a.join('-'); //1-2-3(拼接符是 - )
-
a.join('--p');//1--p2--p3(拼接符是 --p)
-
//拼接符号可以*设置
(6)数组的排序sort---只认识字符串
①字符串的排序:从左向右按字母顺序排序。
-
var arr=['float','width','height','color'];
-
arr.sort();
-
alert(arr); //arr=['color','float','height','width']
②数字的排序:----将数字当字符串处理
-
var arr=[12,114,8,24,245];
-
arr.sort();
-
alert(arr); //arr=[114,12,24,245,8]
改进:------处理数字
-
arr.sort(function(n1,n2)
-
{
-
if(n1<n2)
-
{
-
return -1;
-
}
-
else if(n1>n2)
-
{
-
return 1;
-
}
-
else
-
{
-
return 0;
-
}
-
});
简化:
-
arr.sort(function(){
-
return n1-n2;
-
});
5、json与数组之间的比较
①什么是json?
-
<script>
-
/*
-
*注意事项:
-
*1、json类似于数组,但是使用的事花括号{};
-
*2、定义:var json={变量名:变量值, 变量名:变量值,....};
-
*3、提取json中的元素:json.变量名
-
*4、提取到的元素可以进行相应的处理
-
*/
-
var json={a:12,b:7,c:'xdef'};
-
-
// alert(json.a); //提取json中的元素
-
-
json.b++; //对json中的元素b进行自增处理
-
alert(json.b);
-
</script>
②区别
-
var arr=[1,3,4];
-
var json={a=1,b=3,c=4};
-
-
alert(arr[0]); //弹出1
-
alert(json.a); //弹出1
-
alert(json['a']); //弹出1
由上可以观察出:区别1:json的下标是字符,而数组的下标是数字
-
//循环(两种表示):
-
-
//① 使用到length
-
-
for(var i=0;i<arr.length;i++)
-
{
-
alert('第'+i+'个东西:'+arr[i]);
-
}
-
//② 未使用到length
-
-
for(var i in arr)
-
{
-
alert('第'+i+'个东西:'+arr[i]);
-
}
-
-
-
for(var i in json)
-
{
-
alert('第'+i+'个东西:'+json[i]);
-
}
区别2:json没有length,而数组有length;(涉及循环的使用)。所以json循环时用 for --in 结构。
JavaScript的学习整理(四)
目录:
1、类型转换
2、全局变量
3、命名规范
4、运算符(%)的使用
1、类型转化(强制类型转换)
-
var a='12';
-
parseInt(a); //a=12(字符串转化成数字)
-
parseFloat(a);//转换成浮点数
功能:从左到右开始扫描,碰见非数字的字符时就跳出。
例子:
-
var a='12px';
-
parseInt(a);//a=12
-
-
var a='23pn45';
-
parseInt(a);//a=12
(1) isNAN(a); 判断变量a是否为NAN;
应用:求两数之和;
-
<input type="text" id='txt1'/>
-
<input type="text" id='txt2'/>
-
<input type='button' id='btn1' value="求和"/>
-
-
<script>
-
window.onload=function()
-
{
-
var oTxt1=document.getElementById('txt1');
-
var oTxt2=document.getElementById('txt2');
-
var oBtn1=document.getElementById('btn1');
-
-
oBtn1.onclick=function()
-
{
-
var n1=parseInt(oTxt1.value);
-
var n2=parseInt(oTxt2.value);
-
-
if(isNaN(n1))
-
{
-
alert("您输入的第一个值有误!请重新输入");
-
}
-
else if(isNaN(n2))
-
{
-
alert("您输入的第二个值有误!请重新输入");
-
}
-
else
-
{
-
alert(n1+n2);
-
}
-
};
-
-
};
-
</script>
(2)隐式类型转换
== 先转换类型,然后再进行比较;
=== 直接进行比较。
例子:
-
var a=2;
-
var b='2';
-
-
alert(a==b); //true
-
alert(a===b);//false
-
//所以一般最好用'==='(三个等号)来进行比较,更加严谨。
(3)+ :①字符串链接 ②数字相加
- :只有数字相减的功能
-
var a='12';
-
var b='3';
-
-
alert(a+b); //123
-
alert(a-b); //9
-
2、全局变量
-
<script>
-
-
var a=3;//全局变量(在任何地方都能使用和修改)
-
-
function aaa()
-
{
-
a=12;
-
}
-
function bbb()
-
{
-
a+=12;
-
}
-
-
aaa();
-
bbb();
-
-
//alert(a);//弹出24
-
-
</script>
3、命名规范:
类型 前缀 类型
数组 a Array
布尔值 b Boolean
浮点数 f Float
函数 fn Function
整数 i Integer
对象 o Object
字符串 s String
变体变量 v Variant
4、运算符(%)
例子1:隔行变色
-
<ul>
-
<li></li>
-
<li></li>
-
<li></li>
-
<li></li>
-
<li></li>
-
<li></li>
-
<li></li>
-
<li></li>
-
</ul>
-
-
<script>
-
window.onload=function()
-
{
-
var aLi=document.getElementsByTagName('li');
-
-
for(var i=0;i<aLi.length;i++)
-
{
-
if(i%2==0)
-
{
-
aLi[i].style.background='#CCC';
-
}
-
else
-
{
-
aLi[i].style.background='';
-
}
-
}
-
-
};
-
</script>
例子2:秒转时间
-
var a=125;
-
alert(parseInt(a/60)+'分'+a%60+'秒'); //2分5秒