Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 21.01.2009, 13:33
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

Добраться до ячеек таблицы через DOM

Есть вот такая табличка в html.
На Elem повешено событие, которое должно изменять значения в ячейках X в этой же строке. Строк может быть много.
Вопрос: как кроссбраузерно добраться до этих ячеек?
Ответить с цитированием
  #2 (permalink)  
Старый 21.01.2009, 15:54
Интересующийся
Отправить личное сообщение для gcolor Посмотреть профиль Найти все сообщения от gcolor
 
Регистрация: 19.11.2008
Сообщений: 17

tablica=document.getElementById("asder");
qwe=tablica.getElementsByTagName("td")[3];<- МЕНЯЕШ ЦИФИРКИ :)
qwe.style.background='#d5e6f1';
Ответить с цитированием
  #3 (permalink)  
Старый 21.01.2009, 16:09
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

не получится.
Elem должен менять значения в своей(!) строке.
Ответить с цитированием
  #4 (permalink)  
Старый 21.01.2009, 16:16
Интересующийся
Отправить личное сообщение для gcolor Посмотреть профиль Найти все сообщения от gcolor
 
Регистрация: 19.11.2008
Сообщений: 17

Тогда надо обратиться getElementsByTagName("tr") а потом уже getElementsByTagName("td"). Вроде так
Ответить с цитированием
  #5 (permalink)  
Старый 21.01.2009, 16:24
Интересующийся
Отправить личное сообщение для gcolor Посмотреть профиль Найти все сообщения от gcolor
 
Регистрация: 19.11.2008
Сообщений: 17

function Go(asder)
{
table=asder;
xrow=table.getElementsByTagName("td");
for (j=0;j<xrow.length;j++)
   {
   тут делаем что нам нужно
типа так xrow[j].value=somedata
}
}

событие onclick=Go(this); у тебя в каждой строке таблицы
Вроде так.
Ответить с цитированием
  #6 (permalink)  
Старый 21.01.2009, 16:54
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

gcolor,
я очень ценю Вашу помощь, но всетаки это не подходит, т.к. в xrow будет массив из всех td таблицы. что и где изменять непонятно.
xrow[j].value=somedata - Вы имели ввиду xrow[j].innerHTML ?
И название темы говорит что мне надо по-другому.
Где же сторожилы
Ответить с цитированием
  #7 (permalink)  
Старый 21.01.2009, 16:59
Интересующийся
Отправить личное сообщение для gcolor Посмотреть профиль Найти все сообщения от gcolor
 
Регистрация: 19.11.2008
Сообщений: 17

Но почему же все?
У вас же так в таблице:
<tr onclick=Go(this)>
Значить ссылаемся только на ту строку на которую нажали.
Дальше перебираем <td> которые относятся только к нашей строке.

Я только учусь
Ответить с цитированием
  #8 (permalink)  
Старый 21.01.2009, 17:04
-
Отправить личное сообщение для twolf Посмотреть профиль Найти все сообщения от twolf
 
Регистрация: 16.07.2008
Сообщений: 207

нет. у меня на Elem событие вешается из скрипта. На строке нет никакого события.
Помоему, Вы думаете что мне надо подсветить строку таблицы. Нет, я хочу по клику на Elem изменить значения X в определенных ячейках текущей строки.
Ответить с цитированием
  #9 (permalink)  
Старый 21.01.2009, 17:07
Новичок на форуме
Отправить личное сообщение для Kolyaj Посмотреть профиль Найти все сообщения от Kolyaj
 
Регистрация: 19.02.2008
Сообщений: 9,177

Сообщение от twolf
Где же сторожилы
Наблюдают
Ответить с цитированием
  #10 (permalink)  
Старый 21.01.2009, 17:25
Отправить личное сообщение для Octane Посмотреть профиль Найти все сообщения от Octane  
Регистрация: 10.07.2008
Сообщений: 3,873

<!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>&nbsp;</td>
				<td>X</td>
				<td>&nbsp;</td>
				<td>X</td>
				<td><input type="button" value="Edit" /></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td>X</td>
				<td>&nbsp;</td>
				<td>X</td>
				<td><input type="button" value="Edit" /></td>
			</tr>
			<tr>
				<td>&nbsp;</td>
				<td>X</td>
				<td>&nbsp;</td>
				<td>X</td>
				<td><input type="button" value="Edit" /></td>
			</tr>
		</tbody>
	</table>
</body>
</html>


DOM: Работаем со строками и ячейками таблицы

Последний раз редактировалось Octane, 21.01.2009 в 17:45.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск