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

友友们,JS片段放在body中可以用,但放在head中只有取消设置按钮有作用。这是为什么?

<!doctupe html>
<html>
<head>
 <meta charset="utf-8" />
    <title>Dom练习</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>
    <script type="text/javascript">
  var mychar=document.getElementById("txt");
     function changeC(){
   mychar.style.color="red";
   mychar.style.backgroundColor="gray";
   }
  function changeW(){
   mychar.style.width="800px";
   mychar.style.height="600px";
   }
  function hiddenC(){
   mychar.style.display="none"
   }
  function displayC(){
   mychar.style.display="block";
   }
  function cancelS(){
   var res=confirm("取消设置?")
   if(res){
      mychar.style.color="#000";
      mychar.style.backgroundColor="#fff";
      mychar.style.width="600px";
      mychar.style.height="400px";
      mychar.style.display="block";
    }
   }
    </script>
</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>
    <!--<script type="text/javascript">
  var mychar=document.getElementById("txt");
     function changeC(){
   mychar.style.color="red";
   mychar.style.backgroundColor="gray";
   }
  function changeW(){
   mychar.style.width="800px";
   mychar.style.height="600px";
   }
  function hiddenC(){
   mychar.style.display="none"
   }
  function displayC(){
   mychar.style.display="block";
   }
  function cancelS(){
   var res=confirm("取消设置?")
   if(res){
      mychar.style.color="#000";
      mychar.style.backgroundColor="#fff";
      mychar.style.width="600px";
      mychar.style.height="400px";
      mychar.style.display="block";
    }
   }
    </script>-->
    <form>
        <input type="button" value="改变颜色" onClick="changeC()" />
        <input type="button" value="改变宽高" onClick="changeW()" />
        <input type="button" value="隐藏内容" onClick="hiddenC()" />
        <input type="button" value="显示内容" onClick="displayC()" />
        <input type="button" value="取消设置" onClick="cancelS()" />
    </form>
</body>
</html>

正在回答

1 回答

那么把这个js脚本放head里面还是body里面呢? 
答案是不仅要放到body里面,而且还得放到定义id='vSort0'的列表框后面,因为这个js脚本中有document.form4.vSort0.selectedIndex,如果放到head里或者body的id='vSort0'前,页面加载后顺序执行代码,执行到这个js发现vSort0未定义(即undefind),这个js也就失去了作用。 
而为什么我们经常看到有很多的人把js脚本放到head里面没事呢?对! 
就是因为你看到的在head里的js代码有onclick等事件传递了变量给函数。 
这就告诉我们,如果我们想定义一个全局对象,而这个对象与页面中的某个按钮(等等)有关时, 我们必须将其放入body中,道理很明显:如果放入head,那当页面加载head部分的时候,那个按钮(等等)都还没有被定义(也可以说是还没有被加 载,因为加载的过程就是执行代码的过程,包括了定义),你能得到的只可能是一个undefind。

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

qq_季末先声_03133538 提问者

非常感谢!
2016-04-17 回复 有任何疑惑可以回复我~

举报

0/150
提交
取消

友友们,JS片段放在body中可以用,但放在head中只有取消设置按钮有作用。这是为什么?

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