Добраться до ячеек таблицы через DOM
![]() Есть вот такая табличка в html. На Elem повешено событие, которое должно изменять значения в ячейках X в этой же строке. Строк может быть много. Вопрос: как кроссбраузерно добраться до этих ячеек? |
tablica=document.getElementById("asder"); qwe=tablica.getElementsByTagName("td")[3];<- МЕНЯЕШ ЦИФИРКИ :) qwe.style.background='#d5e6f1'; |
не получится.
Elem должен менять значения в своей(!) строке. |
Тогда надо обратиться getElementsByTagName("tr") а потом уже getElementsByTagName("td"). Вроде так :)
|
function Go(asder) { table=asder; xrow=table.getElementsByTagName("td"); for (j=0;j<xrow.length;j++) { тут делаем что нам нужно типа так xrow[j].value=somedata } } событие onclick=Go(this); у тебя в каждой строке таблицы Вроде так. |
gcolor,
я очень ценю Вашу помощь, но всетаки это не подходит, т.к. в xrow будет массив из всех td таблицы. что и где изменять непонятно. xrow[j].value=somedata - Вы имели ввиду xrow[j].innerHTML ? И название темы говорит что мне надо по-другому. Где же сторожилы :) |
Но почему же все?
У вас же так в таблице: <tr onclick=Go(this)> Значить ссылаемся только на ту строку на которую нажали. Дальше перебираем <td> которые относятся только к нашей строке. Я только учусь :) |
нет. у меня на Elem событие вешается из скрипта. На строке нет никакого события.
Помоему, Вы думаете что мне надо подсветить строку таблицы. Нет, я хочу по клику на Elem изменить значения X в определенных ячейках текущей строки. |
Цитата:
|
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> <script type="text/javascript"> window.onload= function() { document.getElementById('table').onclick = function(event) { event = event || window.event; var target = event.target || event.srcElement; if(target.tagName == 'INPUT') { var cells = target.parentNode.parentNode.cells; cells[1].innerHTML = cells[3].innerHTML = 'Y'; } }; }; </script> </head> <body> <table id="table"> <tbody> <tr> <td> </td> <td>X</td> <td> </td> <td>X</td> <td><input type="button" value="Edit" /></td> </tr> <tr> <td> </td> <td>X</td> <td> </td> <td>X</td> <td><input type="button" value="Edit" /></td> </tr> <tr> <td> </td> <td>X</td> <td> </td> <td>X</td> <td><input type="button" value="Edit" /></td> </tr> </tbody> </table> </body> </html> DOM: Работаем со строками и ячейками таблицы |
Часовой пояс GMT +3, время: 06:27. |