|
11.04.2011, 14:25
|
Профессор
|
|
Регистрация: 11.04.2011
Сообщений: 207
|
|
Покрасить все ячейки таблицы с заданным id
Здравствуйте! Хочу при клике на ячейке таблицы с определенным id покрасить все ячейки с таким же id. Цвета возвращаются на место при втором клике, или при клике на ячейку с другим id.
Вот подсказал один добрый человек, но че то не работает ))
<script language="JavaScript">
function your_funct(cellId){
var cells = document.getElementsByTag('td');
for (i=0;i<cells.length;i++){>.id==cellId){
cells.style.backgroundColor = 'red';
} else {
cells.style.backgroundColor = 'white';
}
}
}
</script>
Таблица
<table border="1" width="33%">
<tr>
<td id="c1" onClick="your_funct('c1');">Text 1</td>
<td id="c1" onClick="your_funct('c1');" >Text 2</td>
</tr>
<tr>
<td id="c2" onClick="your_funct('c2');" >Text 3</td>
<td id="c2" onClick="your_funct('c2');" >Text 4</td>
</tr>
<tr>
<td id="c1" onClick="your_funct('c1');">Text 5</td>
<td id="c2" onClick="your_funct('c2');" >Text 6</td>
</tr>
</table>
Помогите найти ошибку!
|
|
11.04.2011, 14:41
|
sinistral
|
|
Регистрация: 28.03.2011
Сообщений: 5,418
|
|
элемент с ИДом - уникальный
при
<button id="but"> lol </button>
<button id="but"> two </button>
document.getElementById(" but ").onclick = function() { alert(5); }
алерт будет только на первой кнопке
|
|
11.04.2011, 14:46
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
Я так понимаю вам нужно при клике на ячейку закрашивать весь ряд, тогда лучше так сделать:
<html>
<head>
<script type="text/javascript" language="javascript">
function color(id) {
var elems = document.getElementsByTagName('tr'),
length = elems.length;
for(i=0; i<length;i++)
if (elems[i].id == id)
elems[i].style.backgroundColor = 'red';
else
elems[i].style.backgroundColor = 'white';
}
</script>
</head>
<body>
<table border="1" width="33%">
<tr id="c1" onclick="color('c1');">
<td>Text 1</td>
<td>Text 2</td>
</tr>
<tr id="c2" onclick="color('c2');">
<td>Text 3</td>
<td>Text 4</td>
</tr>
<tr id="c3" onclick="color('c3');">
<td>Text 5</td>
<td>Text 6</td>
</tr>
</table>
</body>
</html>
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
11.04.2011, 15:23
|
Профессор
|
|
Регистрация: 11.04.2011
Сообщений: 207
|
|
walik, спасиб!
Чуть переделал, мне все таки нужно было красить не ряд ячеек, а определенную совокупность. Чуть переделал твой код, все работает:
<html>
<head>
<script type="text/javascript" language="javascript">
function color(id) {
var elems = document.getElementsByTagName('td'),
length = elems.length;
for(i=0; i<length;i++)
if (elems[i].id == id)
elems[i].style.backgroundColor = 'red';
else
elems[i].style.backgroundColor = 'white';
}
</script>
</head>
<body>
<table border="1" width="33%">
<tr >
<td id="c1" onclick="color('c1');">Удав</td>
<td id="c3" onclick="color('c3');" >Шмел</td>
<td id="c1" onclick="color('c1');">Гадюка</td>
<td id="c2" onclick="color('c2');" >Орел</td>
</tr>
<tr >
<td id="c2" onclick="color('c2');">Стриж</td>
<td id="c1" onclick="color('c1');" >Питон</td>
<td id="c1" onclick="color('c1');">Кобра</td>
<td id="c3" onclick="color('c3');" >Мух</td>
</tr>
<tr >
<td id="c3" onclick="color('c3');" >Ос</td>
<td id="c2" onclick="color('c2');">Соловей</td>
<td id="c2" onclick="color('c2');">Воробей</td>
<td id="c1" onclick="color('c1');" >Уж</td>
</tr>
</table>
</body>
</html>
Последний раз редактировалось alexan0308, 11.04.2011 в 15:26.
|
|
11.04.2011, 17:07
|
Профессор
|
|
Регистрация: 11.04.2011
Сообщений: 207
|
|
Опять проблема. Данный код прекрасно работает для приведенного примера и в опере, и в Экспловере 8. Сделал другую таблицу для своей задачи, и уже в опере работает, а в Экспловере нет! Чо такое?
|
|
11.04.2011, 17:29
|
Профессор
|
|
Регистрация: 11.04.2011
Сообщений: 207
|
|
А, нашел подробно анализируя...
'#328aa4' оба браузера понимают а
' #328aa4' с пробелом впереди эксплорер не понимает...
|
|
11.04.2011, 17:34
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
alexan0308,
Сообщение от melky
|
элемент с ИДом - уникальный
|
Поэтому для вашей задачи используйте классы.
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
|
|
11.04.2011, 18:22
|
|
Профессор
|
|
Регистрация: 09.11.2009
Сообщений: 1,101
|
|
А по спецификации он должен быть уникальным
Цитата:
|
This attribute assigns a name to an elemen. This name must be unique in a document.
|
"Этот атрибут присваивает имя элемента. Это имя должно быть уникальным в документе." Конец цитаты ))
http://www.w3.org/TR/REC-html40-9712...l.html#adef-id
И даже в той статье не использовался один ID для разных элементов, там все элементы имели разные ID, он демонстрировал что по ID обращение быстрей чем по классу
__________________
"Всегда пишите код так, будто сопровождать его будет склонный к насилию психопат, который знает, где вы живете."
Мой сертификат :-D клацай
Последний раз редактировалось walik, 11.04.2011 в 18:31.
|
|
11.04.2011, 19:42
|
Профессор
|
|
Регистрация: 11.04.2011
Сообщений: 207
|
|
Ну хорошо, а как мне переделать под класс?
|
|
|
|