Да.я
и я приношу извинения Кстати кажется тот код, что янаписал правильно должен писатся как-то так $('.tr1').click( function() { $('.tr1').each( function(i,n){ $(n).меняем_стиль() }); }); |
хм такой код меняет стразу во всех строках стили
а как только у одной строки? |
заменить
$('.tr1').each( function(i,n){ $(n).меняем_стиль() на $("элемент_который_меняем").меняем_стиль() |
дык у меня не один блок строк
те <tr class='tr1'> <td rowspan=2></td> <td></td> </tr> <tr class='tr1'> <td></td> </tr> .... <tr class='tr1'> <td rowspan=2></td> <td></td> </tr> <tr class='tr1'> <td></td> </tr> .... <tr class='tr1'> <td rowspan=2></td> <td></td> </tr> <tr class='tr1'> <td></td> </tr> "элемент_который_меняем" это на 1 блок сработает а если таблица длинная то чета я в тупик засел ( |
Блин, у меня ломается мозг от вашего описания задачи.
Вам надо так? если пользователь щелкнул на первую или вторую строчку, то первая И вторая подсвечиваются есди клдикнул на третью или четвертую, то третья И четвертая подсвечивается. Если я правильно опичсал что вам надо, то мое первое исправленное решение вам должно подойти. ТОЛЬКО только вам надо для каждой такой группы чтрок свой класс сделать ПО примеру tr1 tr2 tr3 tr4 И для каждого такого блока вызвать то, что я писал Если я вас неправильно понял, опишите в похожем формате, что вам надо |
Как-то так
<!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></title> <style type="text/css"> table { border-spacing: 0; border-collapse: collapse; } table, td, th { border: 1px solid #ccc; } tr.selected { background: #ffc; } </style> <script type="text/javascript" src="jquery-1.2.6.js"></script> <script type="text/javascript"> $(function() { var rows = $('table').click(function(e) { var node = $(e.target); if(node.is('td')) { rows.removeClass('selected'); node = node.parent().addClass('selected'); if(node.children().attr('rowspan') == 2) node.next().addClass('selected'); else if(node.prev().children().attr('rowspan') == 2) node.prev().addClass('selected'); } }).find('tbody tr'); }); </script> </head> <body> <table> <thead> <tr> <th>Заголовок 1</th> <th>Заголовок 2</th> <th>Заголовок 3</th> </tr> </thead> <tbody> <tr> <td rowspan="2">Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td rowspan="2">Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td rowspan="2">Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> <tr> <td>Ячейка</td> <td>Ячейка</td> <td>Ячейка</td> </tr> </tbody> </table> </body> </html> работает только для rowspan == 2 |
спасибо большое )
но я заметил одну весч этот метод не универсален а зависит от rowspan буду пробовать сделать универсальнее |
У меня тоже вопрос по теме мне нужно при щелчке по нужной ячейке вставить в нее инпут а в него то значение что было в этой ячейке.
Просто со вставкой в нужную ячейку инпута все вроде просто а вот с вставкой в инпут нужного значения или даже просто с правильным получением значения проблемы: $('table td').click(function(){ var str = $(this).text(); $("#value input").val('str'); $(this).append('<input name="date" type="text">').val('str'); }); в ячейку рядом с значением вставляет просто инпут а если поэкспереметировать то получает тока название переменной str но в инпут который в ячейке и его не вставляет вставляет в другой какой нибудь инпут за пределами таблички. |
дык.. а нельзя ли просто использовать toggleClass
http://docs.jquery.com/Attributes/toggleClass#class вроде гораздо проще будет ) |
А как можно внести значение ячейки в инпут с помощью toggleClass насколько я понимаю это чтото типа addClass? Я примеров с toggleClass похожих на то что мне нужно не нашол.
|
Часовой пояс GMT +3, время: 20:32. |