HTML 无法调用insertRow()函数

HTML 无法调用insertRow()函数

问题描述:

求各位大佬帮忙
图片说明

删除 修改 保存三个功能都能实现
但是就是添加行的函数实现不了
报错为:Uncaught TypeError: $(...).insertRow is not a function

 function $(id) {
    if (typeof jQuery == 'undefined' || (typeof id == 'string' && document.getElementById(id))) {
         return document.getElementById(id);
    } else if (typeof id == 'object' || !/^\w*$/.exec(id) ||
         /^(body|div|span|a|input|textarea|button|img|ul|li|ol|table|tr|th|td)$/.exec(id)){
       return jQuery(id);
    }
    return null;
}

function addRow() {  
        var z;  
        var i=$("ph").value;  
        var tableRow=$("detail_table").insertRow(1);
        var Cell_0=tableRow.insertCell(0);
        Cell_0.innerHTML='<input value="'+$("ph").value+'"  readonly="true"/>';
        Cell_0.className="s1";
        var Cell_1=tableRow.insertCell(1);
        Cell_1.innerHTML='<input value="'+$("xm").value+'"  readonly="true"/>';
        Cell_1.className="s2";
        var Cell_2=tableRow.insertCell(2);
        Cell_2.innerHTML='<input value="'+$("ch").value+'"  readonly="true"/>';
        Cell_2.className="s3";
        var Cell_3=tableRow.insertCell(3);
        Cell_3.innerHTML="<a href='#' onclick='Del(this.parentNode,this.parentNode.parentNode.rowIndex)'>删除</a>";
        Cell_3.className="s4";
        var Cell_4=tableRow.insertCell(4);
        Cell_4.innerHTML="<a href='#' onclick='edit(this.parentNode.parentNode)' class='edit'>修改</a>";
        Cell_4.className="s5";
        var Cell_5=tableRow.insertCell(5);
        Cell_5.innerHTML="<a href='#' onclick='ban(this.parentNode.parentNode)'>保存</a>";
        Cell_5.className="s6";
        var Cell_6=tableRow.insertCell(6);
        Cell_6.innerHTML='<input value="'+$("am").value+'"  readonly="true"/>';
        Cell_6.className="s7";
}

function Del(obj,val) {  
        var a=window.confirm("您确定要删除吗?");  
        if(a)  {
            $("detail_table").deleteRow(val);
        }  else  {
            window.alert("未删除!");
        } 
} 

function edit(obj) {
        var inp = obj.getElementsByTagName("input");
        for (var i=0,len=inp.length;i<len;i++)
        {
            inp[i].readOnly=false;
        }
}

function add(table,column){
        var total=0;
        var trs=table.getElementByTagName('tr');
        var start=1;
        var end=trs.length;
        for (var i=start;i<end;i++)
        {
            var td=trs[i].getElementsByTagName('td')[column];
            var t=parseFloat(td.innerHTML);
                if(t)total+=t;}
        trs[end].getElementsByTagName('td')[column].innerHTML=total;
}

function ban(obj){
        var c=window.confirm("确定要对数据进行改动么");
        if(c){
            var inp = obj.getElementsByTagName("input");
            for (var i=0,len=inp.length;i<len;i++)
            {
                  inp[i].readOnly=true;
            } 
        }
}

或者试试 var tableRow=$("detail_table")[0].insertRow(1);

同问,求各路大神出来解答

$(...).insertRow 打断点,看看 $(...) 的变化,你报的错就是这个有毛病了。

报错是不是内置函数啊,需要你自己定义 ,你不是写的addrow吗