【问题标题】:javascript getElementById appendChild errorjavascript getElementById appendChild 错误
【发布时间】:2011-11-21 17:05:19
【问题描述】:

我遇到了 javascript 的问题,我不知道如何解决它。 我有这个代码

function addtask(tab){
        var tasktag = document.createElement('tr');
        var task = document.getElementById(tab).getElementsByTagName('tr').length+1;
        task = tab+'r'+task;
        tasktag.setAttribute('id',task);
        document.getElementById(tab).appendChild(tasktag);
        var tasktag2 = document.createElement('td');
        var task2 = document.getElementById(task).getElementsByTagName('td').length+1;
        task2 = task+'c'+task2;
                alert(task2);
        tasktag2.setAttribute('id',task2);
        tasktag2.innerHTML =''+task2+'   <br><input id=\'btn1\' type=\'button\' value=\'remove\' onClick=\"removeElement(\''+num+'\',\'body\')\" />';
        document.getElementById(task).appendChild(task2);
}`

我得到“无法转换 JavaScript 参数 arg 0 [nsIDOMHTMLTableRowElement.appendChild]”(来自萤火虫)。 虽然这段代码完美运行

`var num;
function addlist(){
        var divTag = document.createElement('table');
        if(num==undefined){num = 1;}
        else{numi = num.split("t")
            num=parseInt(numi[1])+1;}
        num = 't'+num;
        divTag.setAttribute('id',num);
        divTag.setAttribute('align','left'); 
        divTag.setAttribute('style','margin:7px;'); 
        divTag.setAttribute('border',1); 
        document.body.appendChild(divTag);
        var divTag2 = document.createElement('tr');
        var num2 = document.getElementById(num).getElementsByTagName('tr').length+1;
        num2 = num+'r'+num2;
        divTag2.setAttribute('id',num2);
        document.getElementById(num).appendChild(divTag2);
        var divTag3 = document.createElement('td');
        var num3 = document.getElementById(num2).getElementsByTagName('td').length+1;
        num3 = num2+'c'+num3;
        divTag3.setAttribute('id',num3);
        divTag3.innerHTML =''+num+'   <br><input id=\'btn1\' type=\'button\' value=\'remove\' onClick=\"removeElement(\''+num+'\',\'body\')\" /><br><input id=\'btn2\' type=\'button\' value=\'task\' onClick=\"addtask(\''+num+'\')\" />';
        document.getElementById(num2).appendChild(divTag3);
    }

为什么会这样?谢谢大家的宝贵时间

【问题讨论】:

    标签: getelementbyid arguments appendchild


    【解决方案1】:

    使用表格时,您必须使用稍微不同的 JavaScript 函数:

    var row = table.insertRow(table.rows.length);
    row.id = ...;
    

    尝试重新编写代码以使用insertRow 而不是appendChild,因为我很懒。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      相关资源
      最近更新 更多