问题更新:前面写急写错了,将82行的等号写成了冒号,不过改成冒号后还是存在设置className无效的问题。
如果要测试运行的话,因为附带代码部分似乎不支持原作者修改保存,所以请记得将82行改成target.className="reset";再做自己的修改,谢谢!
问题描述:
关于这个代码 我在第82行代码用className实现重置发现无效,不知道是什么原因,想请教一下老师和同学,谢谢!
具体说明:
我把reset样式写成
.reset{
display:"block";
width:"600px";
height:"400px";
color:"black";
background-color:"white";
}
假设我前面修改的是id为target的部分,在cancel函数里写:
target.className="reset";
alert("重置成功");
结果是:alert能执行,但target部分的样式没有改变,也就不是reset的样式了。
<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" Content="text/html; charset=utf-8" /> <title>javascript</title> <style type="text/css"> body { font-size:12px; } #txt { height: 400px; width: 600px; border: #333 solid 1px; padding: 5px; } p { line-height: 18px; text-indent: 2em; } /*默认类样式*/ /* !!样式声明不必使用双引号 */ .reset { display: block; width: 600px; height: 400px; color: black; background-color: white; } </style> </head> <body> <h2 id="con">JavaScript课程</h2> <div id="txt"> <h5>JavaScript为网页添加动态效果并实现与用户交互的功能。</h5> <p>1. JavaScript入门篇,让不懂JS的你,快速了解JS。</p> <p>2. JavaScript进阶篇,让你掌握JS的基础语法、函数、数组、事件、内置对象、BOM浏览器、DOM操作。</p> <p>3. 学完以上两门基础课后,在深入学习JavaScript的变量作用域、事件、对象、运动、cookie、正则表达式、ajax等课程。</p> </div> <form> <!--当点击相应按钮,执行相应操作,为按钮添加相应事件--> <input type="button" value="改变颜色" onclick="changeColor()"> <input type="button" value="改变宽高" onclick="changeSize()"> <input type="button" value="隐藏内容" onclick="hide()"> <input type="button" value="显示内容" onclick="show()"> <input type="button" value="取消设置" onclick="cancel()"> </form> <script type="text/javascript"> //改变的目标 var target = document.getElementById("txt"); //测试 //定义"改变颜色"的函数 function changeColor() { var fc = prompt("请输入字体颜色:"); target.style.color = fc; } //定义"改变宽高"的函数 function changeSize() { var wid = prompt("请输入宽度:"); target.style.width = wid + "px"; var hei = prompt("请输入高度:"); target.style.height = hei + "px"; } //定义"隐藏内容"的函数 function hide() { target.style.display = 'none'; } //定义"显示内容"的函数 function show() { target.style.display = 'block'; } //定义"取消设置"的函数 function cancel(){ var reset = confirm("是否需要重置?"); if(reset==true) { target.className = "reset"; // !!内联的样式比外联样式优先级高,所以重置要先remove掉style这个attribute,以免内联样式覆盖掉.reset的样式 target.removeAttribute('style'); alert("重置成功"); } } </script> </body> </html>
用等于号。
target.className="reset";