【问题标题】:getting error after executing the code TypeError: display is nullscript.js:22:22执行代码后出现错误 TypeError: display is nullscript.js:22:22
【发布时间】:2020-06-29 23:40:49
【问题描述】:

HTML 这是一个 HTML 页面,当用户单击“添加”按钮时,我在表格中逐一添加行并给出如下错误。

<div id="adder">
    <table id="adderhd">
        <tr>
            <th>PARTICULARS</th>
            <th>Amount</th>
        </tr>
        <tr>
            <th><input type="text" id="particulars" value=""></th>
            <th><input type="number" id="amount" value=""><button id="add">Add</button></th>
        </tr>
    </table>
</div>

<div id="tables">
    <div>
        <table class="table-1">
            <tr>
                <th>
                    PARTICULARS
                </th>
                <th>
                    AMOUNT
                </th>
            </tr>
        </table>
    </div>
</div>    

JavaScript 这是我为它编写的 JavaScript 代码,但执行后我在控制台上出现错误。

请帮助我,我是 JavaScript 的初学者。

function rowAdder() {
    var particulars = document.getElementById("particulars").value;
    var amount = document.getElementById("amount").value;

    if (!particulars || !amount) {
        alert("Please enter the values inside all the field.");
        return;
    }

    var display = document.getElementById("table-1");    
    var newRow = display.insertRow(row);      //not working (insert(row)); 
    var cel1 = newRow.insertCell(0);
    var cel2 = newRow.insertCell(1);

    cel1.innerHTML = particulars;
    cel2.innerHTML = amount;    
    row++;

}

【问题讨论】:

  • 需要js代码吗?
  • 您遇到的错误是什么?
  • 当我按下添加按钮时,出现以下错误。 TypeError: display is nullscript.js:22:22 rowAdder 127.0.0.1:5500/HTML and JS/Web 1/js/script.js:22 127.0.0.1:5500/HTML and JS/Web 1/js/script.js:8 jQuery 2
  • no @sonEtLumiere,我的意思是 'insertRow(row)' 在我的代码中不起作用。
  • 非常感谢@andydavies,现在它工作正常,这是一个愚蠢的错误。

标签: javascript html jquery forms


【解决方案1】:

你需要在按钮上添加一个onclick事件来调用rowAdder函数。变量 'display' 通过 id 获取元素,因此将 id="table-1" 分配给您的 html 元素。它工作正常。

function rowAdder() {
  var particulars = document.getElementById("particulars").value;
  var amount = document.getElementById("amount").value;

  if (!particulars || !amount) {
    alert("Please enter the values inside all the field.");
    return;
  }

  var display = document.getElementById("table-1");    
  var newRow = display.insertRow();
  var cel1 = newRow.insertCell(0);
  var cel2 = newRow.insertCell(1);

  cel1.innerHTML = particulars;
  cel2.innerHTML = amount;    
}
  <div id="adder">
    <table id="adderhd">
        <tr>
            <th>PARTICULARS</th>
            <th>Amount</th>
        </tr>
        <tr>
            <th><input type="text" id="particulars" value=""></th>
            <th><input type="number" id="amount" value="">
            <button onclick="rowAdder()"id="add">Add</button></th>
        </tr>
    </table>
</div>

<div id="tables">
    <div>
        <table id="table-1">
            <tr>
                <th>
                    PARTICULARS
                </th>
                <th>
                    AMOUNT
                </th>
            </tr>
        </table>
    </div>
</div> 

【讨论】:

  • 感谢@sonEtLuminere,实际上我使用了jQuery click 事件。但是,我们也可以通过您描述的答案来完成任务。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-27
  • 2021-08-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多