Я пытаюсь отображать строки в зависимости от выбора пользователей. Предположим, что ему нужны только 3 строки, затем прячется четвертая и пятая строки. Ниже вы найдете часть html и javascript.Ошибка JavaScript при попытке скрыть строки таблицы
HTML
<table>
<tr id="sRow1">
<td>1a</td>
<td>1b</td>
</tr>
<tr id="sRow2">
<td>2a</td>
<td>2b</td>
</tr>
<tr id="sRow3">
<td>3a</td>
<td>3b</td>
</tr>
<tr id="sRow4">
<td>4a</td>
<td>4b</td>
</tr>
<tr id="sRow5">
<td>5a</td>
<td>5b</td>
</tr>
</table>
JavaScript
// b gets value from xml file
while (b <= 5)
{
var rowName = "sRow" + b;
alert(rowName);
try {
document.getElementById(rowName).style.display = "none";
}
catch (err)
{
alert(err.description)
}
b++;
}
Я получаю сообщение об ошибке Требуется объект в document.getElementById (rowName) .style.display = "нет" ;. Вы можете помочь.
Я не понимаю, зачем вам здесь нужно попробовать. Вы уверены, что 'document.getElementById (rowName)' фактически находит элемент? Если это не так, оно должно возвращать 'null', а дополнительный доступ к ресурсу, то есть' .style.display', должен приводить к ошибке. Чтобы предотвратить это, просто проверьте существование элемента, прежде чем пытаться установить его стиль. – kangax
Работает для меня, например. 'Б = 4'. Может быть, 'b' - это не то, что вы ожидали? Что такое rowName, которое вы получите перед ошибкой? – bobince
Еще одно странное замечание, если я изменю имена идентификаторов от sRow до sib, оно работает. Является sRow ключевым словом. С уважением – kobra