Добраться до ячеек таблицы через 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, время: 05:18. |