Как поменять содержимое TD при наведении на строку?
Два дня бьюсь. Подскажите, пожалуйста - прямо чую, что это просто. Но туплю или знаний не хватает.
Необходимо поменять что-либо в ячейке (содержимое, класс, атрибуты) при наведении на строку, в которой ячейка и находится. Вот более конкретно: Есть база MySQL. Из нее вытаскиваю данные в таблицу циклом while Получаю примерно такую таблицу: Тип | Заголовок | Текст | Дата Новинка | Привет | Как дела | 12.12.12 Новость | Проблема | Поменять TD при наведении на TR | 24.10.12 ... Вот сам краткий цикл:
echo "<table><thead>
<th>Тип</th><th>Заголовок</th><th>Текст</th><th>Дата</th>
<thead><tbody>";
$r = 0; // <- Cтавим счетчик (нужен ли он?)
while ($row = mysql_fetch_object($getdata)) {
$r++; // <- Счетчик пошел
echo "<tr id='alltr".$r."'> // <- Присвоил тут уникальный id (?)
<td id='td_type".$r."'>".$row->type."</td> // <- Присвоил тут уникальный id (?)
<td>".$row->title."</td>
<td>".$row->full."</td>
<td>".$row->date."</td>
</tr>";
}
echo "</tbody></table>";
Хочу чтобы при наведении на строку - один из td поменялся. Например с $row->type на слово "Удалить". А при "отведении" - $row->type вставал на место. Испробывал много способов и все время втыкаюсь в проблему: Например, если в строку tr прописать onmouseover='showKick(); То затем логично создается функция:
function showKick () {
document.getElementById('td_type').innerHTML = 'Удалить';
}
Только всем известно, что ID он на то и ID, что он уникальный. Как мне сюда завязать показание счетчика? Или может быть есть более интересное решение? Можно на jq ps Строку я действительно собираюсь удалить (из базы тоже), но застрял вот тут и не могу дальше пройти. |
Проще всего это сделать на css:
table tr:hover td:first-child .record-delete{ display: block; cursor: pointer; } table tr:hover td:first-child .record-type{ display: none; } а в td пишите
<td>
<span class="record-type">тут тип</span>
<span class="record-delete">удалить</span>
</td>
|
|
Цитата:
|
danik.js, ваш код работает некорректно.
|
Упрощу код:
<table> <tr><td>type_01</td><td>title_01</td><td>text_01</td><td>date_01</td></tr> <tr><td>type_02</td><td>title_02</td><td>text_02</td><td>date_02</td></tr> <tr><td>type_03</td><td>title_03</td><td>text_03</td><td>date_03</td></tr> </table> При наведении на строку tr: type_01 должен стать del_01 type_02 должен стать del_02 type_03 должен стать del_03 При "отведении" курсора от строки tr del_01 становиться обратно type_01 и т.п. |
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Example</title>
</head>
<body>
<table id="table">
<tr>
<td>td1</td>
</tr>
<tr>
<td>td2</td>
</tr>
<tr>
<td>td3</td>
</tr>
</table>
<script type="text/javascript">
function table() {
var table=document.getElementById('table').getElementsByTagName('tr'),
innerhtml='';
for(var i in table) {
table[i].onmouseover=function(event) {
//event=fixEvent(event);
innerhtml=event.target.innerHTML;
event.target.innerHTML='Удалить';
};
table[i].onmouseout=function(event) {
//event=fixEvent(event);
event.target.innerHTML=innerhtml;
};
}
}
table();
</script>
</body>
</html>
Если надо на jq напишу. Или поправлю, что не так. Пишите) |
Цитата:
<td><a href="#">one</a> td1 <a href="#">two</a></td> |
Your, все не то. Люди! Прочитайте правильно задачу: нужно менять содержимое только ОДНОЙ ячейки в каждой строке
|
Цитата:
var tds = document.getElementsByTagName('tr'); |
| Часовой пояс GMT +3, время: 13:06. |