添加一行后,鼠标移到相应的行不变色,初始的三行则会变色

来源:9-22 编程练习

channel_ho

2016-07-30 23:05

    window.onload = function(){
        var tr = document.getElementsByTagName("tr");
        for (var i=0; i<tr.length; i++){
            change(tr[i]);
        }
        // 鼠标移动改变背景,可以通过给每行绑定鼠标移上事件和鼠标移除事件来改变所在行背景色
        function change(obj){
            obj.onmouseover = function(){
                obj.style.backgroundColor = "#f2f2f2";
            }
            obj.onmouseout = function(){
                obj.style.backgroundColor = "#fff";
            }
        }
    }
    // 编写一个函数,供添加按钮调用,动态在表格的最后一行添加子节点
    var num = 2;
    
    function add(){
        num++;
        
        var newtr = document.createElement("tr");
        var newtd1 = document.createElement("td");
        var newtd2 = document.createElement("td");
        newtd1.innerHTML = "xh00"+num;
        newtd2.innerHTML = "第"+num+"个学生";
        
        var del = document.createElement("td");
        del.innerHTML = "<a href='javascript:;' onclick='del(this)' >删除</a>";
        
        var tab = document.getElementById("table");
        tab.appendChild(newtr);
        newtr.appendChild(newtd1);
        newtr.appendChild(newtd2);
        newtr.appendChild(del);
        
        var tr = document.getElementsByTagName("tr");
        for (var i=0; i<tr.length; i++){
            change(tr[i]);
        }
    }
写回答 关注

1回答

  • 水里有条鱼
    2016-07-31 09:43:19
    已采纳

    把function change(obj)拿出来在window.onload=function()外面声明,因为在里面声明,外面函数调用不到它

    channe...

    非常感谢!

    2016-07-31 10:54:24

    共 1 条回复 >

JavaScript进阶篇

本课程从如何插入JS代码开始,带您进入网页动态交互世界

468196 学习 · 21891 问题

查看课程

相似问题