问答详情
源自:9-10 访问父节点parentNode

麻烦大佬们看看代码,鼠标事件颜色不改变,点击删除和添加都没用反应,怎么修改?

<!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(){

                  

     // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

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

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

            bgcChange(element[i]);

        }

  }

  function bgcChange(obj){

      obj.onmouseover = function(){

          obj.style.backgroundColor = "#f2f2f2";

      }

      obj.onmouseout = function(){

          obj.style.backgroundColor = "#fff";

      }

  }

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

     

      function add(){

         var tab = document.getElementsByTagName("table");

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

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

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

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

     

        td1.innerHTML = "xxx";

        td2.innerHTML = "xxx";

        td3.innerHTML = "<a href="javascript:del(this);">删除</a>";

     

        tab.appendChild("tr");

        tr.appendChild("td1");

        tr.appendChild("td2");

        tr.appendChild("td3");

     

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

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

             bgcChange(element[i]);

          }

      }

     

     // 创建删除函数

     function del(obj)

     {

         var tr=obj.parentNode.parentNode;

         tr.parentNode.removeChild(tr);

     }



  </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:del(this);">删除</a></td>   <!--在删除按钮上添加点击事件  -->

   </tr>


   <tr>

<td>xh002</td>

<td>刘小芳</td>

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

   </tr>  


   </table>

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

 </body>

</html>


提问者:Avalondada 2018-07-22 23:50

个回答

  • 加了椰子汁的冰
    2018-07-28 14:10:13

     特别需要注意一点: <a>标签中href="javascript:" 如果写this,那它则指向全局,他不知道是那个元素。我也是刚学的新手,如果说的有误请指出。

  • 加了椰子汁的冰
    2018-07-28 14:03:27

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    <head>

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

    <title>无标题文档</title>

      <script type="text/javascript"> 

           function bgcChange(obj){

          obj.onmouseover = function(){

              obj.style.backgroundColor = "#F2F2F2";

          }

          obj.onmouseout = function(){

              obj.style.backgroundColor = "#FFFFFF";

          }

      }

          window.onload = function(){

                      

         // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色。

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

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

                bgcChange(element[i]);

            }

      }

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

         

          function add(){

             var tab = document.getElementsByTagName("table");

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

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

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

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

         

            td1.innerHTML = "xxx";

            td2.innerHTML = "xxx";

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

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

    Link.appendChild(LinkText);

    Link.setAttribute("href","javascript:void(0)");

    Link.setAttribute("onclick","del(this)");

    td3.appendChild(Link);

            tab[0].appendChild(tr);

            tr.appendChild(td1);

            tr.appendChild(td2);

            tr.appendChild(td3);

         

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

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

                 bgcChange(element[i]);

              }

          }

         

         // 创建删除函数

         function del(obj)

         {

           var thistr = obj.parentNode.parentNode ;

           thistr.parentNode.removeChild(thistr) ;

         }

      </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:void(0)" onclick="del(this)">删除</a></td>   <!--在删除按钮上添加点击事件  -->

       </tr>


       <tr>

    <td>xh002</td>

    <td>刘小芳</td>

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

       </tr>  


       </table>

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

     </body>

    </html>