Есть несколько проблем:
- Имена классов (и идентификаторы) не могут начинаться с цифры .
- Вы должны передать класс в
getElementsByClassName ()
.
- Вы должны повторить набор результатов.
Пример ( непроверенный ):
<script type="text/javascript">
function hideTd(className){
var elements = document.getElementsByClassName(className);
for(var i = 0, length = elements.length; i < length; i++) {
if( elements[i].textContent == ''){
elements[i].style.display = 'none';
}
}
}
</script>
</head>
<body onload="hideTd('td');">
<table border="1">
<tr>
<td class="td">not empty</td>
</tr>
<tr>
<td class="td"></td>
</tr>
<tr>
<td class="td"></td>
</tr>
</table>
</body>
Обратите внимание, что getElementsByClassName ()
недоступен до IE8 включительно.
Обновление:
В качестве альтернативы вы можете присвоить таблице идентификатор и использовать:
var elements = document.getElementById('tableID').getElementsByTagName('td');
для получения всех элементов td
.
Чтобы скрыть родительскую строку, используйте свойство parentNode
элемента:
elements[i].parentNode.style.display = "none";
ответ дан 1 December 2019 в 19:07
поделиться