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

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

    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]);
        }
    }

提问者:channel_ho 2016-07-30 23:05

个回答

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

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