问题更新:前面写急写错了,将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";