Как проверить, таблица пуста или не использует JavaScript - PullRequest
0 голосов
/ 30 октября 2018

Итак, у меня есть такой скрипт для создания таблицы 2x2 с помощью javascript

function createtable(){
          var tbl = document.getElementById('x');
            if (tbl.contains()==false){
              tbl.setAttribute('border', '1');
              var tbdy = document.createElement('tbody');
              for (var i = 0; i < 2; i++) {
                var tr = document.createElement('tr');
                for (var j = 0; j < 2; j++) {         
                    var td = document.createElement('td');
                    tr.appendChild(td);
                    td.style.height='50px';
                    td.style.width='50px';
                }
                tbdy.appendChild(tr);
              }
              tbl.appendChild(tbdy);
        }

<form>
    <input type="button" value="Create Table" onclick="createtable()"> <br>
</form>
<table id="x"> </table>

Я хочу проверить, содержит ли таблица x что-либо или нет, чтобы создать себя. Я пытаюсь использовать содержащуюся () проверку, но она не работает.

Ответы [ 5 ]

0 голосов
/ 30 октября 2018

Вы можете проверить количество строк

var tbl = document.getElementById('x');
if(tbl.rows.length==0){
}

если tbl.rows.length равен 0, это означает, что в таблице нет строк

0 голосов
/ 30 октября 2018

Если вы хотите проверить, есть ли какая-либо внутренняя таблица, сделайте это

document.getElementById("myTable").rows.length

Подробнее здесь

0 голосов
/ 30 октября 2018

Вы можете проверить количество строк в таблице:

var x = document.getElementById("myTable").rows.length;

См. Ссылку здесь: https://www.w3schools.com/jsref/coll_table_rows.asp

Используя это:

var tbl = document.getElementById('x');
if (tbl.rows.length == 0) {
   // empty
}
0 голосов
/ 30 октября 2018

В этом случае, поскольку в вашей таблице нет дочерних элементов или текстовых узлов, вы можете просто проверить, является ли свойство innerHTML ложным. Это предотвращает добавление дополнительных функций вашей дочерней функцией createtable после ее однократного запуска. Например:

function createtable() {
  var tbl = document.getElementById('x');
  if (!tbl.innerHTML) {
    tbl.setAttribute('border', '1');
    var tbdy = document.createElement('tbody');
    for (var i = 0; i < 2; i++) {
      var tr = document.createElement('tr');
      for (var j = 0; j < 2; j++) {
        var td = document.createElement('td');
        tr.appendChild(td);
        td.style.height = '50px';
        td.style.width = '50px';
      }
      tbdy.appendChild(tr);
    }
    tbl.appendChild(tbdy);
  }
}
<form>
  <input type="button" value="Create Table" onclick="createtable()">
  <br>
</form>
<table id="x"></table>
0 голосов
/ 30 октября 2018

Есть несколько способов. Одним из способов является использование свойства childElementCount.

if (tbl.childElementCount==0)
{

}

Для более подробной информации вы можете сослаться ссылка

...