Таблица с ховерами столбцов
Добрый день!
Помогите, пожалуйста, разобраться. Нужно сделать так, что бы подсвечивались столбцы от положения курсора. Почему получилось только у первой строки (при наведении на ячейки в первой строке, подсвечивается столбец, а в остальных ячейках других строк не работает). <table id="tabstoid" class="tabstodir"> <tr class="zelstdi"> <td> </td> <td>от 1000</td> <td>от 3000</td> <td>от 5000</td> <td>от 10000</td> </tr> <tr> <td>E<span class="zelcifdi">65</span></td> <td>1,60</td> <td>1,40</td> <td>1,20</td> <td>1,00</td> </tr> <tr> <td>C<span class="zelcifdi">6</span></td> <td>1,45</td> <td>1,25</td> <td>1,05</td> <td>0,85</td> </tr> <tr> <td>C<span class="zelcifdi">65</span></td> <td>1,70</td> <td>1,50</td> <td>1,30</td> <td>1,10</td> </tr> <tr> <td>C<span class="zelcifdi">5</span></td> <td>1,75</td> <td>1,55</td> <td>1,35</td> <td>1,15</td> </tr> <tr> <td>C<span class="zelcifdi">4</span></td> <td>2,60</td> <td>2,40</td> <td>2,20</td> <td>2,00</td> </tr> </table> <script> var tabastdire = document.getElementById("tabstoid").getElementsByTagName("td"); var tabastrire = document.getElementById("tabstoid").getElementsByTagName("tr"); for(i=0; i<=tabastdire.length; i++){ function hovtd(i){ tabastdire[i].onmouseover = function() { this.style.backgroundColor = "#CBFFDD"; for(n=1; n<=tabastrire.length; n++){ tabastrire[n].getElementsByTagName("td")[i].style.backgroundColor = "#000"; } }; tabastdire[i].onmouseout = function() { this.removeAttribute("style"); }; } hovtd(i); } </script> |
начните уже пользоваться поиском по форуму перед созданием темы http://javascript.ru/forum/jquery/21...yachejjku.html
|
Спасибо)
Только хотелось бы без Jquery и самому написать. Почти все получилось, только возникла загвоздка |
Цитата:
|
Весь
|
Цитата:
|
Кто-то так делал, и я стал так делать)
|
подсветка столбца таблицы без jquery
qwe88,
нет у вас элементов == length потому что индексы с нуля. очередной вариант подсветки столбца таблицы <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> </head> <body> <table id="tabstoid" class="tabstodir"> <tr class="zelstdi"> <td> </td> <td>от 1000</td> <td>от 3000</td> <td>от 5000</td> <td>от 10000</td> </tr> <tr> <td>E<span class="zelcifdi">65</span></td> <td>1,60</td> <td>1,40</td> <td>1,20</td> <td>1,00</td> </tr> <tr> <td>C<span class="zelcifdi">6</span></td> <td>1,45</td> <td>1,25</td> <td>1,05</td> <td>0,85</td> </tr> <tr> <td>C<span class="zelcifdi">65</span></td> <td>1,70</td> <td>1,50</td> <td>1,30</td> <td>1,10</td> </tr> <tr> <td>C<span class="zelcifdi">5</span></td> <td>1,75</td> <td>1,55</td> <td>1,35</td> <td>1,15</td> </tr> <tr> <td>C<span class="zelcifdi">4</span></td> <td>2,60</td> <td>2,40</td> <td>2,20</td> <td>2,00</td> </tr> </table> <script> var tabastdire = document.getElementById("tabstoid").getElementsByTagName("td"); arr = []; [].forEach.call(tabastdire, function(cell, i) { var k = cell.cellIndex; arr[k] ? arr[k].push(cell) : (arr[k] = [cell]); cell.onmouseover = function() { arr[k].forEach(function(el) { el.style.backgroundColor = "#CBFFDD" }) this.style.backgroundColor = "#00CC47" } cell.onmouseout = function() { arr[k].forEach(function(el) { el.style.backgroundColor = "" }) } })</script> </body> </html> |
Супер!)
Спасибо огромное) Сейчас буду разбираться, как вы это сделали) |
Часовой пояс GMT +3, время: 09:15. |