СКРЫТИЕ ЭЛЕМЕНТОВ ТАБЛИЦЫ
Доброго времени суток!
помогите пожалуйста у меня есть таблица: <table> <tr id="a00"> <td>1</td> </tr> <tr id="a01"> <td>2</td> </tr> <tr id="a02"> <td>3</td> </tr> <tr id="a03"> <td>4</td> </tr> <tr id="a04"> <td>5</td> </tr> </table> - всего 5 строк у каждой свой id - как мне скрыть часть таблицы допустим со второй строки по последнюю или еще как нибудь.. Заранее, спасибо!:thanks: |
чем большем тем тем больше шансов на ответ - не правильная логика !
|
Цитата:
|
а насчет вашей проблемы:
используйте класс, к примеру : задайте класс 'hideTd' и потом скрывайте нужные елементы |
var allCells = []; for (i=0;i<5;i++) { var elem = document.getElementById("a0"+i); allCells.push(elem); } allCells[2].style.visibility = 'hidden'; allCells[3].style.visibility = 'hidden'; |
Цитата:
|
добавить проверок
<style> td { border: solid 1px; } </style> <table> <tr id="a00"> <td>11</td> <td>12</td> </tr> <tr id="a01"> <td>21</td> <td>22</td> </tr> <tr id="a02"> <td>31</td> <td>32</td> </tr> <tr id="a03"> <td>41</td> <td>42</td> </tr> <tr id="a04"> <td>51</td> <td>52</td> </tr> </table> <button>hide</button> <button>show</button> <script> window.onload = function () { var elems = document.body.children; var rows = elems[0].rows; var len = rows.length; for (var i = 0; i < len; i++) { rows[i].style.display = 'block'; } function sh(first, last, mode) { var l = last - first; if (l < len) { var disp; if (mode == 'hide') { disp = 'none'; } else { disp = 'block'; } for (var i = first; i <= l; i++) { if (rows[i].style.display != disp) { rows[i].style.display = disp; } } } } elems[1].onclick = function () { var first = prompt('first', 1); var last = prompt('last', 2); sh(first, last, 'hide'); } elems[2].onclick = function () { var first = prompt('first', 1); var last = prompt('last', 2); sh(first, last, 'show'); } } </script> |
так получше будет
<style> td { border: solid 1px; } </style> <table> <tr id="a00"> <td>11</td> <td>12</td> </tr> <tr id="a01"> <td>21</td> <td>22</td> </tr> <tr id="a02"> <td>31</td> <td>32</td> </tr> <tr id="a03"> <td>41</td> <td>42</td> </tr> <tr id="a04"> <td>51</td> <td>52</td> </tr> </table> <button>hide</button> <button>show</button> <script> window.onload = function () { var elems = document.body.children; var rows = elems[0].rows; var len = rows.length; for (var i = 0; i < len; i++) { rows[i].style.display = 'block'; } function sh(first, last, mode) { if (last < len) { if (last == first) { var l = last + 1; } else if (last > first) { var l = last + 1; } } else { return; } var disp; (mode == 'hide') ? disp = 'none': disp = 'block'; for (var i = first; i < l; i++) { if (rows[i].style.display != disp) { rows[i].style.display = disp; } } } elems[1].onclick = function () { var first = Number(prompt('first', 1)); var last = Number(prompt('last', 2)); sh(first, last, 'hide'); } elems[2].onclick = function () { var first = Number(prompt('first', 1)); var last = Number(prompt('last', 2)); sh(first, last, 'show'); } } </script> |
Цитата:
|
Цитата:
В данном случае нужно либо использовать class либо rows . |
Цитата:
Цитата:
Цитата:
|
Цитата:
|
Немного изменил вариант от bes
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.7.1/jquery.min.js"></script> <style> .row { width: 100%; display: flex; } .product-layout { width: 40%; } td { border: solid 1px; } tr.tr_hide { display: none; } tr.tr_hide.active { display: table-row; } </style> <div class="row"> <div class="product-layout"> <table> <tbody> <tr><td>11</td><td>12</td><td>13</td></tr> <tr><td>21</td><td>22</td><td>23</td></tr> <tr><td>31</td><td>32</td><td>33</td></tr> <tr><td>41</td><td>42</td><td>43</td></tr> <tr><td>51</td><td>52</td><td>53</td></tr> </tbody> </table> <!-- Кнопки скрыть/показать --> <button class="hide">hide</button> <button class="show">show</button> </div> <div class="product-layout"> <table> <tbody> <tr><td>11</td><td>12</td><td>13</td></tr> <tr><td>21</td><td>22</td><td>23</td></tr> <tr><td>31</td><td>32</td><td>33</td></tr> <tr><td>41</td><td>42</td><td>43</td></tr> <tr><td>51</td><td>52</td><td>53</td></tr> </tbody> </table> <!-- Кнопки скрыть/показать --> <button class="hide">hide</button> <button class="show">show</button> </div> </div> <script> $(document).ready(function() { function sh(first, last) { $('table tbody').each(function(index, element) { var elems = $(element); var rows = elems[0].rows; var len = rows.length; if (len <= last){ return } for (var i = 0; i < len; i++) { rows[i].classList.remove('tr_hide'); } for (var i = last; i < len; i++) { rows[i].classList.add('tr_hide'); } }) } $(document).on("click", ".hide", function () { var index = $(this).index('.hide'); var currentLayout = $($('.product-layout')[index]); var currentButton = currentLayout.find('.tr_hide').removeClass('active'); }) $(document).on("click", ".show", function () { var index = $(this).index('.show'); var currentLayout = $($('.product-layout')[index]); var currentButton = currentLayout.find('.tr_hide').addClass('active'); }) var first = Number(1); var last = Number(3); sh(first, last); }) </script> |
Цитата:
[html run] ... минимальный код страницы с вашей проблемой [/html] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting. и загрузку jQuery добавьте. |
рони,Спасибо за подсказку!
А здесь есть возможность подписаться на тему? |
Цитата:
мой кабинет - опции - Методы подписки на темы Когда Вы создаете новую тему или отвечаете в теме, Вы можете выбрать автоматическое добавление этой темы так же тут вверху есть - опции темы |
Часовой пояс GMT +3, время: 00:22. |