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

为什么使用className没有生效?

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

</style>

</head>

<body>

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

  <div id="p1" class="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="changewh()">

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

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

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

  </form>

  <script type="text/javascript">

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

    var mychar1 = document.getElementById("p1")

    function changecolor()

    {

        mychar1.style.color="red";

    }

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

    function changewh()

    {

        mychar1.style.width = "500px";

        mychar1.style.height = "500px";

    }


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

    function changehide()

    {

        mychar1.style.display="none"

    }


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

    function changeshow()

    {

      mychar1.style.display="block"

    }


//定义"取消设置"的函数

    function changecan()

    {

      var mymessage = confirm("恢复出厂设置?");

      if(mymessage==true)

      {

        mychar1.className="txt"

      }

      else{return;}

    }

  </script>

</body>

</html>


提问者:亻大力 2019-08-07 15:09

个回答

  • Geboren丶King
    2019-08-07 15:41:01

    生效了,但是你div 使用了class="txt" 这句话,所以当你按按钮,恢复出厂设置的时候,他是生效了,但是你看不出来,因为你这段div里的字应用的class样式和回复出厂设置的样式一样,你改下代码,把div里的class="txt"这句话去掉,你就能明显看出来生效了