一些有用的javascript实例分析(二)

原文:一些有用的javascript实例分析(二)

  1 5 求出数组中所有数字的和
  2 window.onload = function ()
  3 {
  4     var oBtn = document.getElementsByTagName("button")[0];
  5     var oInput = document.getElementsByTagName("input")[0]
  6     var oStrong = document.getElementsByTagName("strong")[0];
  7     oInput.onkeyup=function(){
  8         //用空白替换非数字和逗号
  9         this.value=this.value.replace(/[^(\d)|(,)]/,"");
 10     };
 11     oBtn.onclick=function(){
 12         var sum=0;
 13         //将输入的值以逗号为分隔符,转化为字符数组
 14         var oInput=document.getElementsByTagName("input")[0].value.split(",")
 15         for(var i in oInput){
 16             //把字符型转化为整型
 17             sum=parseInt(oInput[i]);
 18         }
 19     };
 20     oStrong.innerHTML=sum;
 21 }
 22 
 23 6 简易选项卡
 24 window.onload = function ()
 25 {   //获取标题
 26     var oLi = document.getElementById("tab").getElementsByTagName("li");
 27     //获取内容
 28     var oUl = document.getElementById("content").getElementsByTagName("ul");
 29     for(var i=0;i<oLi.length;i++){
 30         oLi[i].index=i;
 31         //滑动到指定标题
 32         oLi[i].onmouseover = function (){
 33         for(var n=0;n<oLi.length;n++){
 34             //首先使所有标题样式都不变
 35             oLi[n].className="";
 36             //指定标题样式改变,this指代oLi[i]
 37             this.className="current";
 38         }
 39         for(var n=0;n<oUl.length;n++){
 40             //所有的内容都不显示(实现无缝)
 41             oUl[n].style.display="";
 42             //指定标题对应的内容显示
 43             oUl[this.index].style.display="block"
 44         }    
 45         
 46     }
 47 }
 48 }
 49     
 50    
 51  div id="outer">
 52     <ul id="tab">
 53         <li class="current">第一课</li>
 54         <li>第二课</li>
 55         <li>第三课</li>
 56     </ul>
 57     <div id="content">
 58         <ul style="display:block;">
 59             <li>网页特效原理分析</li>
 60             <li>响应用户操作</li>       
 61         </ul>
 62         <ul>
 63             <li>戛纳印象效果</li>
 64             <li>数组</li>
 65             <li>字符串连接</li>
 66         </ul>
 67         <ul>
 68             <li>JavaScript组成:ECMA来源</li>
 69             <li>JavaScript出现的位置、优缺点</li>
 70         </ul>
 71     </div>
 72 </div>
 73 </body>
 74   
 75 7 单一按钮显示/隐藏
 76 window.onload = function ()
 77 {
 78     var oH2 = document.getElementsByTagName("h2")[0];
 79     var oUl = document.getElementsByTagName("ul")[0];
 80     oH2.onclick=function(){
 81         var style=oUl.style;
 82         //内容在显示和隐藏之间切换
 83         style.display=style.display=="none"?"block":"none";
 84         //标题栏的图标随下拉框的改变而改变(background-position)
 85         oH2.className=style.display=="none"?"open":""
 86     }
 87 <body>
 88 <div id="outer">
 89     <h2>播放列表...</h2>
 90     <ul>
 91         <li><a href="javascript:;">玩家之徒 - 蔡依林</a></li>
 92         <li><a href="javascript:;">原谅我就是 - 戴佩妮</a></li>
 93     </ul>
 94 </div>
 95 </body>
 96 
 97 8鼠标移过,改变图片路径
 98 window.onload = function ()
 99 {
100     var oImg = document.getElementById("box").getElementsByTagName("img");
101     var oDiv = document.getElementsByTagName("div")[0];
102     for(var i=0;i<oImg.length;i++){
103         oImg[i].onmouseover=function(){
104             //在目标div中创建一个图像对象
105             var img=new Image();
106             //用big替换创建图像的small,赋值给第一幅大图,然后赋值给创建图像
107             img.src=oImg[0].src=this.src.replace(/small/,"big");
108         }
109     }
110     <body>
111 <ul id="box">
112     <li class="first"><img src="img/big_1.jpg"><div></div></li>
113     <li><a href="javascript:;"><img src="img/small_1.jpg"></a></li>
114     <li><a href="javascript:;"><img src="img/small_2.jpg"></a></li>
115     </ul>
116 </body>
117 
118 
119 9 复选框(checkbox)全选/全不选/返选
120 window.onload = function ()
121 {
122     var oInput = document.getElementsByTagName("input");
123     var oLabel = document.getElementsByTagName("label")[0];
124     var isCheckAll=function(){
125         //i=0是全选框状态,n记录选中的个数
126         for(var i=1,n=0;i<oInput.length;i++){
127             //若此选框选中执行&&后面的,即个数加1.没选中不加
128             oInput[i].checked&&n++;
129         }
130         //先执行判断选中个数,得到一个布尔值赋给全选框
131         oInput[0].checked=n==oInput.length-1;
132         //根据布尔值(1全选,0未全选)来判断是否已经全选
133         oLabel.innerHTML=oInput[0].checked?"全不选":"全选"
134     }
135     //全选/全不选
136     oInput[0].onclick = function ()
137     {
138         for (var i = 1; i < oInput.length; i++)
139         {//确定每个复选框的状态和oInput[0](this指代)的状态一致
140             oInput[i].checked = this.checked            
141         }
142         isCheckAll()
143     };
144     //反选
145     oA.onclick = function ()
146     {
147         for (var i = 1; i < oInput.length; i++)
148         {
149             oInput[i].checked = !oInput[i].checked
150         }
151         isCheckAll()
152     };
153 
154    //根据复选个数更新全选框状态
155     for (var i = 1; i < oInput.length; i++)
156     {
157         oInput[i].onclick = function ()
158         {//每选中一个复选框判断一次
159             isCheckAll()
160         }    
161     }    
162 }

 

上一篇:《Tableau数据可视化实战》——1.1节简介


下一篇:领域驱动设计实践