Цитата:
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> </head> <body> <input name="filt1" onclick="filtera('sf')" type="button" id="filt1" /> <table id="sf" border="1"> <tr> <td>Номер</td> <td>Наименование</td> </tr> <tr> <td>1</td> <td>Бочка</td> </tr> <tr> <td>2</td> <td>Аквариум</td> </tr> <tr> <td>3</td> <td>Астронавт</td> </tr> <tr> <td>4</td> <td>Бирка</td> </tr> <tr> <td>5</td> <td>Аргентина</td> </tr> </table> <script> function filtera (_id1){ var table1 = document.getElementById(_id1); var ele1; for (var r = 1; r < table1.rows.length; r++) { ele1 = table1.rows[r].cells[1].innerHTML.replace(/<[^>]+>|\s/g,""); var displayStyle = 'none'; if (ele1.toLowerCase().charAt(0) == 'б') displayStyle = ''; table1.rows[r].style.display = displayStyle; } } </script> </body> </html> Однако, если вместо данной маленькой таблички подставить большую, то нажатие на кнопку ни к чему не приводит. Просто нет никакой реакции. Реализацию можно посмотреть здесь: http://animap.ru/new.html UPD1: Разобрался из-за чего не работает. Из-за строк, объетиняющих несколько колонок по средствам colspan. Как обойти? UPD2: Все просто. Сначала надо самому думать. потом писать на форум) function filtera (_id1){ var table1 = document.getElementById(_id1); var ele1; for (var r = 1; r < table1.rows.length; r++) { if(table1.rows[r].cells.length >=2) { ele1 = table1.rows[r].cells[1].innerHTML.replace(/<[^>]+>|\s/g,""); var displayStyle = 'none'; if (ele1.toLowerCase().charAt(0) == 'б') displayStyle = ''; table1.rows[r].style.display = displayStyle; } else { table1.rows[r].style.display = 'none'; } } } |
Не у всех строк таблицы есть вторая ячейка
отсюда ошибка обращения к несуществующим свойствам |
Часовой пояс GMT +3, время: 12:57. |