我想隐藏一个表,如果它的“td”为空。 我正在尝试使用此功能,但它不起作用:
function isEmptyTable(){
var tdTable = document.getElementsByName('tdTable').textContent;
var table = document.getElementsByName('tableToday');
if(tdTable == "")
table.style.display = 'none';
}
任何提示?
HTML:
<body onload="isEmptyTable()">
<table name="tableToday">
<thead>
<tr>
<th>Prêmio</th>
<th>Resultado</th>
<th>Grupo</th>
</tr>
</thead>
<tbody>
<tr>
<th>1º</th>
<td name="tdTable">oi</td>
<td name="tdTable"></td>
</tr>
</tbody>
</table>
答案 0 :(得分:0)
我使用getElementById
和getElementsByClassName
选择器来实现这一目标:
function isEmptyTable(myId){
let tds = document.getElementsByClassName(myId);
let hide = false
for (let element of tds) {
if (element.innerHTML.length == 0) hide = true
}
let myTable = document.getElementById(myId);
if (hide) myTable.style.display = 'none';
}
isEmptyTable("myTable")
isEmptyTable("myTable2")
&#13;
td {
border: 1px solid red;
}
&#13;
<table id="myTable">
<tr>
<td class="myTable"></td>
<td class="myTable">
lololo
</td>
</tr>
</table>
<table id="myTable2">
<tr>
<td class="myTable2">asdasd</td>
<td class="myTable2">
lololo
</td>
</tr>
</table>
&#13;
答案 1 :(得分:0)
只需更改这两行。因为td将在集合中返回,所以使用数组索引[0]
function isEmptyTable(){
var tdTable = document.getElementsByName('tdTable')[0].textContent;
var table = document.getElementsByName('tableToday')[0];
if(tdTable == "")
table.style.display = 'none';
}
它会正常工作。
答案 2 :(得分:0)
问题在于:
var tdTable = document.getElementsByName('tdTable').textContent;
和
table.style.display = 'none';
因为函数document.getElementsByName()
没有返回一个简单的变量,所以它返回一个数组,所以为了解决这个问题,你必须改变这个部分:
var tdTable = document.getElementsByName('tdTable').textContent;
到
var tdTable = document.getElementsByName('tdTable')[0].textContent;
并将table.style.display = 'none';
更改为table[0].style.display = 'none';
有关document.getElementsByName()
Click here