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

问题:1.script放在head标签中为什么就不行了? 2.如果用obj.className=classname;的方法设置样式,怎么取消样式呢?

  1. 问题:script放在head标签中为什么就不行了?

  2. 如果用obj.className=classname;的方法设置样式,怎么取消样式呢?

  3. 发现的问题:用getElementsByClassName()以及getElementsByTagName的方法获取对象进行样式设置为什么不行?

    答:getElementsByClassName()的方法获取得到的是数组,试了getElementsByClassName("")[0]可以。

提问者:MeJu 2016-02-01 12:05

个回答

  • 心雷forever
    2016-02-01 14:05:26
    已采纳

    1. 不知道你的应用场景,如果放在body最下可执行,放在head中不能执行,那么在head的时候要放在window.onload函数来执行你的操作。

    2. 可以利用obj.className.replace(classname,' ');

  • 心雷forever
    2016-02-01 16:45:09

    <!DOCTYPE html>

    <html>

    <head>

        <meta charset="UTF-8">

        <title>DOM改变样式以及隐藏和显示</title>

     <style type="text/css">

     .content{

                width:500px;

                height:500px;

                border:1px dotted black;

            }

            p{

                text-indent:2em;

            }

            input[type="button"]{

                display:inline-block;

                margin-right:14px;

            }

     </style>

        <script type="text/javascript">

     var mydiv = null;

     window.onload = function(){

      mydiv =document.getElementById("text");


     }

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

     function changeColor(){

     mydiv.style.backgroundColor="red";

     }

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

     function changeSize(){

     mydiv.style.width="200px";

     mydiv.style.height="300px";

        }

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

     function hidetext(){

     mydiv.style.display="none";

        }

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

     function showtext(){

     mydiv.style.display="block";

        }

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

     function resettext(){

     var mychose = confirm("确定取消样式?");

     if(mychose==true){

    mydiv.removeAttribute("style");

    }

     }

    </script>

    </head>

    <body>

    <h2>JavaScript课程</H2>

    <div id="text">

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

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

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

    </form>

    </body>

    </html>


  • MeJu
    2016-02-01 16:31:06

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <title>DOM改变样式以及隐藏和显示</title>
     <style type="text/css">
     .content{
                width:500px;
                height:500px;
                border:1px dotted black;
            }
            p{
                text-indent:2em;
            }
            input[type="button"]{
                display:inline-block;
                margin-right:14px;
            }
     </style>
        <script type="text/javascript">
     var mydiv =document.getElementById("text") 
     //定义"改变颜色"的函数
     function changeColor(){
     mydiv.style.backgroundColor="red";
     }
     //定义"改变宽高"的函数
     function changeSize(){
     mydiv.style.width="200px";
     mydiv.style.height="300px";
        }
     //定义"隐藏内容"的函数
     function hidetext(){
     mydiv.style.display="none";
        }
     //定义"显示内容"的函数
     function showtext(){
     mydiv.style.display="block";
        }
     //定义"取消设置"的函数
     function resettext(){
     var mychose = confirm("确定取消样式?");
     if(mychose==true){
     mydiv.removeAttribute("style");
     }
    </script>
    </head>
    <body>
    <h2>JavaScript课程</H2>
    <div class="content" id="text">
        <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="hidetext()">
        <input type="button" value="显示内容" onclick="showtext()">
        <input type="button" value="取消设置" onclick="resettext()">
    </form>
    </body>
    </html>


  • 疯狂的小猪
    2016-02-01 14:18:40

    1. 可能是script中的代码有错误

    2. 可以用obj.removeAttribute("class","相应的类名");

    3. getElement后面不加s的是获得单个对象可以直接调用相关的方法,加s的是获取的对象数组要用索引来调用相应的方法