设置宽高属性和取消设置这两个怎么没反应呢?

来源:4-1 编程挑战

clara89

2015-05-28 22:46

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

    overflow:hidden;}

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

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

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

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

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

  </form>

  <script type="text/javascript">

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

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

    function c(){

        txt.style.color="purple";

        txt.style.backgroundColor="#ccc";

    }

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

    function s(){

        txt.style.width="20px";

        txt.style.height="200px";

    }


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

    function h(){

        h.style.display="none";

    }funct


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

    function d(){

        txt.style.display="block";

    }


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

function r(){

   var r = confirm("是否取消所有设置?");

   if(r==true){

     txt.removeAttribute('style');

   }else{null}



  </script>

</body>

</html>


写回答 关注

3回答

  • BeierYao
    2015-05-28 23:34:22
    已采纳
    //你这里无效是因为你获取的id为txt的元素获取的太早,那时候可能还没加载出来JS语句就已经执行了。
    //这里有几个方法解决这个问题。
    //第一个,也就是等页面都加载好了再获取元素
    window.onload= function() {
        //如果你在ready方法里定义txt,那你也要把方法都写在onload方法里
        //否则就要把txt定义到外面。
        var txt = document.getElementById("txt");
    };
    
    //方法二、 可以在调用的方法里直接获取元素
    //当然,不建议这么弄,这样不利于代码的美观和优化。
    function s(){
            var txt = document.getElementById("txt");
            txt.style.width="20px";
            txt.style.height="200px";
        }
    //方法三、可以直接写到标签上,更加不建议这么写
    //onclick="javascript:var txt = document.getElementById("txt"); txt.style.width="20px";"

    clara8...

    非常感谢!

    2015-10-30 17:08:54

    共 2 条回复 >

  • qq_CC_11
    2015-06-04 17:59:59
    //定义"取消设置"的函数
    function r(){
       var r = confirm("是否取消所有设置?");/*错误1:分号为中文标点,应改为英文标点*/
       if(r==true){
         txt.removeAttribute('style');
       }
       else{null}
    /*错误2:最后一行少了一个大括号*/

    如果改正了上述两个错误后,取消设置按钮依旧无效,那么原因可能是:浏览器兼容性问题。(仔细阅读下面的文字哦,建议自己测试加深印象);

    经测试,在淘宝浏览器极速模式下,该功能失效!!然而在其他浏览器(火狐、chrome、IE10)以及淘宝浏览器的兼容模式 中啥问题都没有!!原因:标签获取style属性失败,若在标签中预先写好style属性<p style="red"></p>,那么啥问题都没有啥浏览器都ok;若通过JavaScript操作DOM改变标签style属性,如:documen.getElementById.style.color="red" 那么removeAttribute()失效,暂时还没有解决办法;


  • cococe
    2015-05-28 23:17:46
    <!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;
    
        overflow:hidden;}
    
    .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="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="c()" >  
    
        <input type="button" value="改变宽高" onclick="s()" >
    
        <input type="button" value="隐藏内容" onclick="h()">
    
        <input type="button" value="显示内容" onclick="d()">
    
        <input type="button" value="取消设置" onclick="r()">
    
      </form>
    
      <script type="text/javascript">
    
        var txt = document.getElementById("txt");
    
    //定义"改变颜色"的函数
    
        function c(){
    
            txt.style.color="purple";
    
            txt.style.backgroundColor="#ccc";
    
        }
    
    //定义"改变宽高"的函数
    
        function s(){
    
            txt.style.width="20px";
    
            txt.style.height="200px";
    
        }
    
    
    
    //定义"隐藏内容"的函数
    
        function h(){
    
            txt.style.display="none";
    
        }
    
    
    
    //定义"显示内容"的函数
    
        function d(){
    
            txt.style.display="block";
    
        }
    
    
    
    //定义"取消设置"的函数
    
    function r(){
    
       var r = confirm("是否取消所有设置?");
    
       if(r==true){
    
         txt.removeAttribute('style');
    
       }else{null}
    }
    
    
    
    
      </script>
    
    </body>
    
    </html>


    BeierY... 回复BeierY...

    第一个地方h()方法后面多了一个funct的错误语句。第二个地方var r = confirm("是否取消所有设置?"); 后面的应该是因为状态下的;而不是中文状态的分号。这个放在浏览器中按一下f12就可以看到报错了。

    2015-05-28 23:49:51

    共 3 条回复 >

JavaScript入门篇

JavaScript做为一名Web工程师的必备技术,本教程让您快速入门

738662 学习 · 9561 问题

查看课程

相似问题