为了账号安全,请及时绑定邮箱和手机立即绑定

为什么使用使用className 属性改变div的style属性不对??

代码如下:

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

.one{

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

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

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

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

  </form>

  <script type="text/javascript">

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

    function changeColor(){

        var txtId = document.getElementById("txt");

        txtId.style.color = "blue";

        txtId.style.backgroundColor = "#ccc";

    }

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

    function changeHW(){

        var txtId = document.getElementById("txt");

        txtId.style.width = "500px";

        txtId.style.height = "200px";

        

    }

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

    function hidetext(){

        var txtId = document.getElementById("txt");

        txtId.style.display = "none";

    }


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

    function showtext(){

        var txtId = document.getElementById("txt");

        txtId.style.display = "block";

    }


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

    function cancelSet(){

        var txtId = document.getElementById("txt");

        var c = confirm("确定取消所有设置,恢复默认吗?");

        if(c == true){

            //为什么改变类属性不对,removeAttribute()没学过啊

            //txtId.className ="one";

            txtId.removeAttribute("style");

            alert("恢复默认!");

        }else{

            alert("没有恢复默认!");

        }

    }



  </script>

</body>

</html>

使用className属性来恢复默认不行吗??求解答

正在回答

2 回答

removeAttribute是把对象的样式全部移除,className是改变class名称。

它是可以的 ,使用方法就是obj.className = "你要赋予的class名"。

你理解的不可以应该是颜色没变,但是class确实改变了的。

改变样式名,不代表之前的样式就没了,之前的还在,只是增加了one下的样式,one下的样式有跟之前样式重叠的话会涉及到优先级的问题。

你把#txt的样式去掉,留下.one样式,在把取消设置的className生效,你看这回是不是就可以了。



0 回复 有任何疑惑可以回复我~
#1

Santiago_0001 提问者

非常感谢!
2015-10-23 回复 有任何疑惑可以回复我~

您规范写错了 所以浏览器报错

0 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

为什么使用使用className 属性改变div的style属性不对??

我要回答 关注问题
意见反馈 帮助中心 APP下载
官方微信