问答详情
源自:4-1 编程挑战

通过恢复类名的方法为什么不行?

<!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;}

.txtt{

    height:400px;

    width:600px;

border:#333 solid 1px;

padding:5px;}

p{

line-height:18px;

text-indent:2em;}

</style>

</head>

<body>

  <h2 id="con">JavaScript课程</H2>

  <div class="txtt" id="txt1"> 

     <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="cc()">  

    <input type="button" value="改变宽高" onclick="cwh()">

    <input type="button" value="隐藏内容" onclick="ch()">

    <input type="button" value="显示内容" onclick="cdd()">

    <input type="button" value="取消设置" onclick="cdn()">

  </form>

  <script type="text/javascript">

//定义"改变颜色"的函数

 function cc() {

 document.getElementById("txt1").style.color="red";

 }

function cwh() {

 document.getElementById("txt1").style.width="100px";

 document.getElementById("txt1").style.height="100px";

 }


//定义"改变宽高"的函数

 function ch() {

 document.getElementById("txt1").style.display="none";

 }


//定义"隐藏内容"的函数

function cdd() {

 document.getElementById("txt1").style.display="block";

 }


//定义"显示内容"的函数


function bac()

{ var p2=document.getElementById("txt1");

     p2.className="txtt";

     }

     

function cdn() {

  var mymessage=confirm("是否取消设置");

   if(mymessage==true)

    {bac();}

 }




  </script>

</body>

</html>

最后一个功能,为什么我点“取消设置 ” 后 , 将类 更改为之前的类, 没有效果?

 改变宽高的 应该是能恢复 的啊

提问者:rainy_li3676598 2016-07-27 09:51

个回答

  • 慕粉3511002
    2016-07-27 10:27:14
    已采纳

    因为通过“document.getElementById("txt1").style.width="100px";”方式设置的是内联样式,txtt类是嵌入式样式,优先级低。而且这个类在你设置样式的时候一直都存在,所以并不存在改变类一说。

    一种解决方案是将bac函数中的p2.className="txtt";   改为  p2.style.cssText="";(清空内联css样式)。