【问题标题】:How can I set a limit on the number of table rows a user can make?如何设置用户可以创建的表格行数限制?
【发布时间】:2016-06-19 12:21:41
【问题描述】:

在我的 html 中,我有一个 300 像素长的 div。在这个 div 中,有一个输入、按钮和一个表格。输入 ID 为“toDo”,按钮 ID 为“addToDo”。但是,我想限制可以添加的todos的数量,因为很多之后,它超过了300px的高度并继续添加行。

var dailyTasks = document.getElementById("ToDo");
var toDoSpace = document.getElementById("toDospace");
document.getElementById("addToDo").addEventListener('click', function addToDo()
{

 var aToDo = document.getElementById("newToDo").value;
  ToDos.push(aToDo);
  var row = document.createElement("tr");
  toDoSpace.appendChild(row);
  var cell= row.insertCell(0);
  cell.innerHTML =  ToDos[0] +  "<div class ='counter'></div>";

 //this did not work 
  if(document.getElementsByTagName("tr") == 5)
  {

    cell.innerHTML = "too many TODos";
  }

});

【问题讨论】:

    标签: javascript html google-chrome


    【解决方案1】:

    改变这一行:

    if(document.getElementsByTagName("tr") == 5)
    

    到:

    if(document.getElementsByTagName("tr").length == 5)
    

    getElementsByTagName() 返回一个元素数组,要检查它们有多少,您需要检查该数组的 .length 属性。

    更新:

    HTML:

    <div id="ToDo">
      <h2>Daily Tasks</h2>
      <input id="newToDo" />
      <button id="addToDo">add ToDo</button>
    
      <table id="toDospace"></table>
      <div id="message"></div>
    </div>
    

    Javascript:

    var toDoSpace = document.getElementById("toDospace");
    
    document.getElementById("addToDo").addEventListener('click', function addToDo()
    {
        var aToDo = document.getElementById("newToDo").value;
    
        if(document.getElementsByTagName("tr").length == 10)
      {
            document.getElementById('message').innerHTML = 'To many todos!';  
      }
      else if (aToDo === '')
      {
        document.getElementById('message').innerHTML = 'Cannot be empty!';
      }
      else
      {    
        var row = document.createElement("tr");
        toDoSpace.appendChild(row);
        var cell= row.insertCell(0);
        cell.innerHTML =  aToDo +  "<div class ='counter'></div>";      
        document.getElementById("newToDo").value = '';
            document.getElementById('message').innerHTML = '';
      }
    });
    

    工作小提琴示例:

    https://jsfiddle.net/rwt9302c/2/

    【讨论】:

    • 我希望它在到达 div 容器的末尾时停止,但它会不断添加 ToDos。
    • 谢谢!但是,这是一个 google chrome 应用程序,我无法在打包的应用程序中使用 alert()
    • 哦,好的。只是稍微改了一下代码,现在它在表格下方的一个 div 元素中输出错误消息。
    猜你喜欢
    • 2012-08-02
    • 2021-11-04
    • 1970-01-01
    • 2014-06-04
    • 1970-01-01
    • 2019-01-01
    • 2016-09-30
    • 2021-03-30
    • 2014-07-20
    相关资源
    最近更新 更多