问答详情
源自:9-22 编程练习

为什么这三个函数必须一样且都要叫:function??

<!DOCTYPE html>

<html>

 <head>

  <title> new document </title>  

  <meta http-equiv="Content-Type" content="text/html; charset=gbk"/>   

  <script type="text/javascript"> 

      window.onload = function(){   //鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff

          var arr=document.getElementsByTagName("tr");

          for(i=0;i<arr.length;i++){

             arr[i].onmouseover=function(){

                 this.style.backgroundColor="#f2f2f2";

             };

             arr[i].onmouseout=function(){

                this.style.backgroundColor="#fff";

             };

          }

}

 

      // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点;

     function add2(){

       var tbody=document.getElementById("table"); 

        var tr=document.createElement("tr");

        var td1=document.createElement("td");

        td1.innerHTML="<input type='text' />";

        tr.appendChild(td1);

         var td2=document.createElement("td");

         td2.innerHTML="<input type='text' />";

         tr.appendChild(td2);

         var td3=document.createElement("td");

         

         var td4=document.createElement("a");

         td4.href="'javascript:add3(this);'";

         var td5=document.createTextNode("删除");

         td4.appendChild(td5);

         td3.appendChild(td4);

         tr.appendChild(td3);

         tbody.appendChild(tr);

     }

     // 创建删除函数

     function add3(a){

        var aa=a.parentNode.parentNode;

        var A=aa.parentNode;

        A.removeChild(aa);

     }



  </script> 

 </head> 

 <body> 

  <table border="1" width="50%" id="table">

  <tr>

<th>学号</th>

<th>姓名</th>

<th>操作</th>

  </tr>  


  <tr>

<td>xh001</td>

<td>王小明</td>

<td><a href="javascript:;" onclick="add3(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

  </tr>


  <tr>

<td>xh002</td>

<td>刘小芳</td>

<td><a href="javascript:;" onclick="add3(this)" >删除</a></td>   <!--在删除按钮上添加点击事件  -->

  </tr>  


  </table>

  <input type="button" value="添加一行" onclick="add2()"/>   <!--在添加按钮上添加点击事件  -->

 </body>

</html>

需求是:鼠标移到不同行上时背景色改为色值为 #f2f2f2,移开鼠标时则恢复为原背景色 #fff。为什么这三个函数必须一样且都要叫:function??

提问者:慕粉2039591405 2017-03-03 16:10

个回答

  • 10点
    2017-03-04 23:32:27

    function 的意思是方法,这不是名字,只是像

    arr[i].onmouseover=function(){

                     this.style.backgroundColor="#f2f2f2";

                 };


    这样用的话,function后面的名字可以省略,因为已经把function这个方法赋给了arr[i].onmouseover对象。所以无须再起名字,如果是单独创建一个方法,就要取名字,如:function add(){

    //代码

    }

  • 学习js
    2017-03-03 16:17:53

    它是一个统一的代码块,你可以随时调用它