初探JavaScript

本篇文章主要内容:

一、函数传参

    改变背景颜色

    改变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>

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值