Correction status:Uncorrected
Teacher's comments:
非常抱歉,由于时间原因,对js的代码不熟悉,在编写相册过程出现了错误,一直未检查出来,最后发现是在获取页面要被替换的元素时,代码document.getElementById中多了个s,当时这个也是联想出来的,没有注意,导致图像一直跳转,错误:var img = document.getElementsById('images'),正确:var img = document.getElementById('imgages');在编写迷你计算器时也出现了点错误,给按钮添加事件的时候,有个大括号{},中间编写的时候可能不小心删除了后一半,导致最后结束的时候大括号没有另外一半,执行计算按钮没有用。希望其他同学也引以为戒。
相册代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>我的动画相册</title> <style type="text/css"> .box{ width: 800px; height: 700px; text-align: center; border: 1px solid red; background-color: skyblue; box-shadow: 3px 3px 3px #999; margin: 30px auto; } .box ul{ padding: 0; margin: 0; overflow: hidden; } .box ul li{ list-style-type: none; float: left; width: 150px; height: 80px; line-height: 80px; margin-left:40px; background-color: lightgreen; } .box ul li a{ display: block; width: 100%; height: 100%; color: white; text-decoration: none; } .box ul li a:hover{ font-size: 1.2em; color: red; } .box .pic{ width: 720px; height: 400px; line-height: 1px; margin: auto; margin-top: 20px; border: 1.5px solid gray } .box .pic img{ width: 100%; height: 100%; } </style> </head> <body> <div class="box"> <h2>我的动画相册</h2> <ul> <li><a href="images/1.jpg" title="圣斗士星矢" onclick="changePic(this);return false">小学时代</a></li> <li><a href="images/2.jpg" title="游戏王" onclick="changePic(this);return false">初中时代</a></li> <li><a href="images/3.jpg" title="火影忍者" onclick="changePic(this);return false">高中时代</a></li> <li><a href="images/4.jpg" title="海贼王" onclick="changePic(this);return false">大学时代</a></li> </ul> <div class="pic"> <img src="images/0.jpg" alt="动画展示" id="imgage"> </div> <p id="instruction"></p> </div> <script type="text/javascript"> function changePic(pic){ // 获取需要替换成的元素 var url = pic.href var info = pic.title var name = pic.innerHTML // 获取需要被替换的元素 var img = document.getElementById('imgage') var ins = document.getElementById('instruction') // 将对应的图像和信息进行替换 img.src = url ins.innerHTML = '<span style="color:blue">' +name+':'+info+'</span>' } </script> </body> </html>
点击 "运行实例" 按钮查看在线实例
迷你计算器代码:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <style type="text/css"> .box{ width: 500px; height: 200px; margin: 20px auto; text-align: center; border: 1px solid #666; border-radius: 5px; box-shadow: 2px 2px 2px #999; background-color: skyblue; } .box2{ width: 100%; height: 50px; } .box2 input{ width: 150px; height: 30px; } .box2 select{ width: 105px; height: 35px; } .box2 button{ width: 50px; height: 35px; } .box2 button:hover{ background-color: orange; } .box3{ width: 100%; height: 30px; } .box3 h3{ width: 150px; height: 30px; float: left; margin: 10px auto; } </style> <title>计算器</title> </head> <body> <div class="box"> <div class="box1"><h2>迷你计算器</h2></div> <div class="box2"> <input type="text" name="opt1" placeholder="操作数1"> <select name="opt"> <option value="null">请选择操作</option> <option value="add"> + </option> <option value="sub"> - </option> <option value="mul"> * </option> <option value="div"> / </option> </select> <input type="text" name="opt2" placeholder="操作数2"> <button type="button">计算</button> </div> <div class="box3"> <h3>结果:</h3> <h3 id="placeholder"></h3> </div> <script type="text/javascript"> //1.获取操作数,按钮与结果占位符 var opt1 = document.getElementsByName('opt1')[0] var opt2 = document.getElementsByName('opt2')[0] var opt = document.getElementsByName('opt')[0] var btn = document.getElementsByTagName('button')[0] var placeholder = document.getElementById('placeholder') //2.给按钮添加事件,执行计算操作 btn.onclick = function(){ if (opt1.value.length == 0) { alert('第一个操作数不能为空') opt1.focus() return false }else if(isNaN(opt1.value)){ alert('第一个操作数必须为数字') opt1.focus() return false }else if(opt2.value.length==0) { alert('第二个操作数不能为空') opt2.focus() return false }else if(isNaN(opt2.value)){ alert('第二个操作数必须为数字') opt2.focus() return false }else { var data1 = parseFloat(opt1.value) var data2 = parseFloat(opt2.value) } var option = opt.value var flag = '' var result = '' switch (option){ case 'null': alert('请选择操作类型') opt.focus() return false case 'add': flag = '+' result = data1 + data2 break case 'sub': flag = '-' result = data1 - data2 break case 'mul': flag = '*' result = data1 * data2 break case 'div': if (data2 == 0){ alert('除数不能为0,请重新输入') opt2.focus() return false }else{ flag = '/' result = data1 / data2 break } } var res = '<span style="color:red">' res += data1+flag+data2+'='+result res += '</span>' placeholder.innerHTML = res } </script> </div> </body> </html>
点击 "运行实例" 按钮查看在线实例
相册效果展示图:
计算机效果展示图:
手写代码:
总结:JS代码编写思路
需要获取到要替换成的元素信息如图片文字等,用var进行定义
需要获取到页面被替换的元素对象,用var进行定义document.getElementByXX('标签中的XX')
将对应的元素进行替换,包含图像文字等,用XX=XX进行替换
获取到对象之后给按钮添加相关计算操作,并对各种情况进行判断,给出相应的提示
编写过程中一定要细心,不要再犯把document.getElementById写成document.getElementsById的错误