print "<table>";
for(....)
{
print "<tr id=tr_color???? >
<td>
<input type='radio' name='r1' value='...' onclick='changeColor(document.all.tr_color????);'>
</td>
</tr>";
}
print "</table>";
Вот как мне передать в функцию changeColor нужную строку??
пыталась так писать id=tr_color[".$s."] и соответственно onclick='changeColor(document.all.tr_color[".$s."]);'> не рабртает(
По сути мне нужно при вызове функции
changeColor(document.all.tr_color????);
все ячейки во всех строках цикла for() окрасить определённым цветом...
как это можно сделать, подскажите пожалуйста??
Спустя 2 часа, 45 минут, 23 секунды (26.04.2010 - 09:37) moskitos80 написал(а):
Если выносить в отдельную функцию то вот так будет работать:
<script type="text/javascript">
function changeColor(id)
{
$tr = document.getElementById(id);
$tr.bgColor='red';
}
</script>
<?php
print '<table border="1">';
for($i=0;$i<5;$i++)
{
print '<tr id="'.$i.'" >
<td>
<input type="radio" name="r1" value="22222" onclick="changeColor('.$i.');">
</td>
</tr>';
}
print '</table>';
?>
Спустя 2 часа, 53 минуты, 3 секунды (26.04.2010 - 12:30) zvezda_t написал(а):
а можно чтобы id-шником было просто число????

Спустя 1 час, 13 минут, 50 секунд (26.04.2010 - 13:44) Michael написал(а):
Цитата (zvezda_t @ 26.04.2010 - 11:30) |
а можно чтобы id-шником было просто число???? ![]() |
Лучше не надо. Оно может и будет работать, но делать так - не по стандартам.
Спустя 16 дней, 18 часов, 17 минут, 53 секунды (13.05.2010 - 08:01) zvezda_t написал(а):
По сути мне нужно при вызове функции
все ячейки во всех строках цикла for() окрасить определённым цветом...
как это можно сделать, подскажите пожалуйста??
changeColor(document.all.tr_color????);
все ячейки во всех строках цикла for() окрасить определённым цветом...
как это можно сделать, подскажите пожалуйста??
Спустя 2 часа, 29 минут, 49 секунд (13.05.2010 - 10:31) vedmed написал(а):
for(i=0;i<document.getElementsByTagName("tr").length-1;i++) {
document.getElementsByTagName("tr")[i].style.backgroundColor = "red";
document.getElementsByTagName("tr")[i+1].style.backgroundColor = "#000000";
}
Спустя 2 часа, 14 минут, 6 секунд (13.05.2010 - 12:45) zvezda_t написал(а):
vedmed, спасибо!
но дело в том, что помимо <tr>...</tr> которые содержаться в цикле for() - у меня на страничке есть еще <tr></tr> а их то окрашивать не надо!
что делать?
но дело в том, что помимо <tr>...</tr> которые содержаться в цикле for() - у меня на страничке есть еще <tr></tr> а их то окрашивать не надо!
что делать?

Спустя 4 часа, 46 минут, 2 секунды (13.05.2010 - 17:31) andyp написал(а):
Незнаю точно что нужно, но чтобы сильно не отходит от кода из начального сообщения, можно сделать так
<script>
function changeColor(childOfTD) {
childOfTD.parentNode.parentNode.style.backgroundColor = "#ff0000";
}
</script>
<?php
print "<table >";
for($i=0;$i<3;$i++)
{
print "<tr>
<td>
<input type='radio' name='r1' onclick='changeColor(this);'>
</td>
</tr>";
}
print "</table>";
?>
Спустя 13 часов, 5 минут, 2 секунды (14.05.2010 - 06:36) zvezda_t написал(а):
<script>
function changeColor(childOfTD) {
childOfTD.parentNode.parentNode.style.backgroundColor = "#ff0000";
}
</script>
<?php
print "<table >";
for($i=0;$i<3;$i++)
{
print "<tr>
<td>
<input type='radio' name='r1' onclick='changeColor(this);'>
</td>
</tr>";
}
print "</table>";
?>
Скрипт работает почти как надо!
(parentNode- дает возможность подниматься на одного родителя выше.. как удобно!!!!)
Окрашивается вся выбранная строка, но при выборе другой строки предидущая попрежнему окрашена, если выбирать все строки по очереди они все будут окрашены, а так не нужно... Нужно чтобы только выбранная строка была окрашена. вот)))
так возможно?????
Спустя 10 часов, 54 минуты, 4 секунды (14.05.2010 - 17:30) andyp написал(а):
Можно сделать так:
Если, однако, внутри таблицы будут другие таблицы, то нужно добавить в clearColor() дополнительные проверки или вообще сделать по другому
<script>
function changeColor(childOfTD) {
clearColor();
childOfTD.parentNode.parentNode.style.backgroundColor = "#ff0000";
}
function clearColor() {
var colortable = document.getElementById('colortable');
var stroki = colortable.getElementsByTagName('tr');
for (var i=0;i<stroki.length;i++) {
stroki[i].style.backgroundColor = '';
}
}
</script>
<?php
print "<table id='colortable'>";
for($i=0;$i<3;$i++)
{
print "<tr>
<td>
<input type='radio' name='r1' onclick='changeColor(this);'>
</td>
</tr>";
}
print "</table>";
?>
Если, однако, внутри таблицы будут другие таблицы, то нужно добавить в clearColor() дополнительные проверки или вообще сделать по другому
Спустя 3 дня, 15 часов, 12 минут, 8 секунд (18.05.2010 - 08:43) zvezda_t написал(а):
спасибо! разобралась наконец-то!!!

_____________
Что ты сделал сегодня - для завтра?
"Приидите ко Мне вси труждающиеся и обремененнии и Аз упокою вы, возмите иго Мое на себе и научитеся от Мене яко кроток есмь и смирен сердцем и обрящете покой душам вашим, иго бо Мое благо и бремя Мое легко есть."(Мф. 11:28-30)