本篇文章主要内容:
一、函数传参
改变背景颜色
改变Div的任意样式
style与className
二、提取行间事件
为元素添加事件
-window.onload的意义
-暂空
获取一组元素
-getElementsByTagName
三、选项卡
在JS里添加自定义属性,但是不可以在HTML中添加,会被过滤
四、JS简易日历
innerHTML的使用
-里面的HTML,可赋一段HTML代码
数组的使用
-定义:arr=[1,2,3]
-使用:arr[0]
字符串拼接
----------------------------------------------函数传参---------------------------------------------------------------------------
function show(num)
{
alert(num);
}
show(12);
//一个简单的关于函数传参的例子
function show(a,b)
{
alert(a+b);
}
show(5,7)
实例1:改变背景颜色
<!DOCTYPE>
<html>
<meta charset="utf-8">
<head>
<title>改变背景颜色</title>
<style>
#divl {width:200px; height: 200px; background: red;}
</style>
<script type="text/javascript">
function toGreen()
{
var oDiv=document.getElementById('divl');
oDiv.style.background='green';
}
function toYellow()
{
var oDiv=document.getElementById('divl');
oDiv.style.background='yellow';
}
function toBlack()
{
var oDiv=document.getElementById('divl');
oDiv.style.background='black';
}
</script>
</head>
<body>
<input type="button" value="变绿" οnclick="toGreen()"/>
<input type="button" value="变黄" οnclick="toYellow()"/>
<input type="button" value="变黑" οnclick="toBlack()"/>
<div id="divl">
</div>
</body>
</html>
优化后:
function setColor(color)
{
var oDiv=document.getElementById('divl');
oDiv.style.background=color;
}
</script>
</head>
<body>
<input type="button" value="变绿" οnclick="setColor('green');"/>
<input type="button" value="变黄" οnclick="setColor('yellow');"/>
<input type="button" value="变黑" οnclick="setColor('black');"/>
实例2:div改变样式
<!DOCTYPE>
<html>
<meta charset="utf-8">
<head>
<title>改变div的样式</title>
<style>
#divl {width:200px; height: 200px; background: red;}
</style>
<script type="text/javascript">
function setWidth()
{
var oDiv=document.getElementById('divl');
oDiv.style.width='400px';
}
function setHeight()
{
var oDiv=document.getElementById('divl');
oDiv.style.height='400px';
}
function setColor()
{
var oDiv=document.getElementById('divl');
oDiv.style.background='yellow';
}
/*function setColor(color)
{
var oDiv=document.getElementById('divl');
oDiv.style.background=color;
}*/
</script>
</head>
<body>
<input type="button" value="变宽" οnclick="setWidth();"/>
<input type="button" value="变长" οnclick="setHeight();"/>
<input type="button" value="变黄
" οnclick="setColor();"/>
<div id="divl">
</div>
</body>
</html>
优化后:
function setStyle(name,value)
{
var oDiv=document.getElementById('divl');
oDiv.style[name]=value;
}
</script>
</head>
<body>
<input type="button" value="变宽" οnclick="setStyle('width','400px');"/>
<input type="button" value="变长" οnclick="setStyle('height','400px');"/>
<input type="button" value="变黄" οnclick="setStyle('background','yellow');"/>
总结:
两种操作属性的方法
function setText(name)
{
var oTxt=document.getElementById('txtl');
//第一种操作属性的方法
oTxt.value='dfsdfsfds';
//第二种操作属性的方法
oTxt[name]='dfsdfsfds';
}
第二种方法中的‘name’是可变的字符串,是[]里的内容变成可变量
style与className
-元素.style.属性=xxx是修改行间样式
-之后再修改className不会有效果(因为优先级)
---------------------------------------------提取行间事件----------------------------------------------------------------------
一个小例子
<body>
<input id="btn1" type="button" value="按钮" />
<script>
var oBtn=document.getElementById('btn1');
function abc()
{
alert('a');
}
oBtn.οnclick=abc;
</script>
</body>
将事件从行间提取出来
两个实用的小tips:
在函数中 有匿名函数
oBtn.οnclick=function()
{
alert('a');
}
可以省去给函数取名字的麻烦
将提取事件的JS代码放入head里会报错
解决办法: Window.onload
window.οnlοad=function()
{
oBtn.οnclick=function()
{
alert('a');
}
}
实例1:
<!DOCTYPE>
<html>
<meta charset="utf-8">
<head>
<title>多个div</title>
<style type="text/css" media="screen">
div {width:200px; height: 200px; float: left; border: 1px solid black;}
</style>
<script type="text/javascript">
window.οnlοad=function()
{
var aDiv=document.getElementsByTagName('div');
/*aDiv[0].style.background='red';
aDiv[1].style.background='red';
aDiv[2].style.background='red';
aDiv[3].style.background='red';
*/
//下面为用循环简化后的代码
for(var i=0;i<aDiv.length;i++) //循环 以及div的数量变换不会受影响
{
aDiv[i].style.background='red';
}
}
</script>
<body>
<div></div>
<div></div>
<div></div>
<div></div>
</body>
</head>
</html>
实例2:全选、不选、反选
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>全选、不选、反选</title>
<script type="text/javascript">
window.οnlοad=function()
{
var oBtn1=document.getElementById('btn1');
var oBtn2=document.getElementById('btn2');
var oBtn3=document.getElementById('btn3');
var oDiv=document.getElementById('div1');
var aCh=oDiv.getElementsByTagName('input');//避免button也被选进去
oBtn1.οnclick=function ()
{
for(var i=0;i<aCh.length;i++)
{
aCh[i].checked=true;
}
}
oBtn2.οnclick=function ()
{
for(var i=0;i<aCh.length;i++)
{
aCh[i].checked=false;
}
}
oBtn3.οnclick=function ()
{
for(var i=0;i<aCh.length;i++)
{
if(aCh[i].checked==true)
{
aCh[i].checked=false;
}
else
{
aCh[i].checked=true;
}
}
}
}
</script>
</head>
<body>
<input id="btn1" type="button" value="全选" /><br>
<input id="btn2" type="button" value="不选" /><br>
<input id="btn3" type="button" value="反选" /><br>
<div id="div1">
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
<input type="checkbox" /><br>
</div>
</body>
</html>
------------------------------------------------------------选项卡---------------------------------------------------------------
代码:
<!DOCTYPE>
<html>
<meta charset="utf-8">
<head>
<title>选项卡</title>
<style>
#div1 .active {background: yellow;}
#div1 div {width:200px; height: 200px; background: #CCC; border:1px solid #999; display: none}
</style>
<script>
window.οnlοad=function()
{
var oDiv=document.getElementById('div1');
var oBtn=oDiv.getElementsByTagName('input');
var aDiv=oDiv.getElementsByTagName('div');
for(var i=0;i<oBtn.length;i++)
{
oBtn[i].index=i;
oBtn[i].οnclick=function()
{
for(var i=0;i<oBtn.length;i++)
{
oBtn[i].className='';
aDiv[i].style.display='none';
}
this.className='active';
aDiv[this.index].style.display='block';
}
}
}
</script>
</head>
<body>
<div id="div1">
<input class="active" type="button" value="教育"/>
<input type="button" value="培训"/>
<input type="button" value="招生"/>
<input type="button" value="招生"/>
<div style="display:block;">1111</div>
<div>2222</div>
<div>3333</div>
<div>4444</div>
</div>
</body>
</html>
-----------------------------------------JS简易日历-----------------------------------------------------------------------------
ps:由于style还没有学,所以这个代码并不是一个成型的日历,日后会跟进修改
代码:
<!DOCTYPE>
<html>
<meta charset="utf-8">
<head>
<title></title>
<style>
#div tab{width:200px; height: 200px; border:1px solid #999;}
</style>
<script>
window.οnlοad=function()
{
var arr=[
'快过年了',
'二月了',
'三月233',
'四月啦'
]
var oDiv=document.getElementById('tab');
var aLi=oDiv.getElementsByTagName('li');
var oTxt=oDiv.getElementsByTagName('div')[0];
for(var i=0;i<aLi.length;i++)
{
aLi[i].οnmοuseοver=function()
{
aLi[i].index=i;
for(var i=0;i<aLi.length;i++)
{
aLi[i].className='';
}
this.className='active';
oTxt.innerHTML='<h2>'+(this.index+1)+'月活动</h2><p>'+arr[this.index]+'</p>';
}
}
}
</script>
</head>
<body>
<div id="tab" class="calender">
<ul>
<li class="active"><h1>1月</h1><p>JAN</p></li>
<li><h1>2月</h1><p>FER</p></li>
<li><h1>3月</h1><p>MAR</p></li>
<li><h1>4月</h1><p>APR</p></li>
<li><h1>5月</h1><p>MAY</p></li>
<li><h1>6月</h1><p>JUN</p></li>
<li><h1>7月</h1><p>JUL</p></li>
<li><h1>8月</h1><p>AUG</p></li>
<li><h1>9月</h1><p>SEP</p></li>
<li><h1>10月</h1><p>OCT</p></li>
<li><h1>11月</h1><p>NOV</p></li>
<li><h1>12月</h1><p>DEC</p></li>
</ul>
<div class="text">
<h2>一月活动</h2>
<p>快过年了</p>
</div>
</div>
</body>
</html>