Сворачивание строк таблицы
Нужно свернуть строки таблицы, находящиеся ниже текущей по выбору <option> в <select>. Делаю так:
$(function () { $tr = $('select').parents('tr'); $('select').change(function (){ $('tr').not($(this).prev()).not(this).slideUp() ; }); $(':submit').click(function (event){ event.stopPropagation(); //event.preventDefault(); $('tr').slideDown() ; }) }); сворачивает абсолютно все. Что делаю не так? |
На всякий случай html такой:
<form> <table> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> </form> |
Цитата:
Цитата:
:( <!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { $tr = $('tr'); $('select').change(function (){ var indx = $tr.index($(this).parents('tr')); $('tr').slice(indx+1).slideUp() ; }); $(':submit').click(function (event){ event.stopPropagation(); //event.preventDefault(); $('tr').slideDown() ; }) }) </script> </head> <body> <form> <table> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr><tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr></table> </form> </body> </html> |
Текущая строка та, в которой происходит change объекта <select> т.е. <option> поменялся - свернулось все что ниже этого куска:
<tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> и если есть что-то выше этого куска (например еще один такой же блок) его тоже свернуть. |
Не могу понять - браузер в консоли мне возвращает:
Uncaught SyntaxError: Unexpected token = хотя все знаки равно стоят где нужно. Убираю код JS из скрипта(общего) ошибка пропадает |
eFusion,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { $tr = $('tr'); $('select').change(function (){ var indx = $tr.index($(this).parents('tr')); $('tr').slideUp().slice(indx-1,indx+1).slideDown() ; }); $(':submit').click(function (event){ event.stopPropagation(); //event.preventDefault(); $('tr').slideDown() ; }) }) </script> </head> <body> <form> <table> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> </table> </form> </body> </html><!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script> <script> $(function () { $tr = $('tr'); $('select').change(function (){ var indx = $tr.index($(this).parents('tr')); $('tr').slideUp().slice(indx-1,indx+1).slideDown() ; }); $(':submit').click(function (event){ event.stopPropagation(); //event.preventDefault(); $('tr').slideDown() ; }) }) </script> </head> <body> <form> <table> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> <tr> <td>$row[0]</td> <td>$row[1]</td> <td>$row[2]</td> <td>$row[3]</td> <td>$row[4]</td> </tr> <tr> <td><p>Текст</p></td> <td><select class='span1' id='1' name='conn'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select></td> <td><p>Текст</p></td> <td><select class='span1' id='2' name='tv'> <option selected='selected'></option> <option>Текст</option><option>Текст</option> <option>Текст</option></select></td> <td><p>Текст</p></td> <td><select class='span1' id='3' name='inet'> <option selected='selected'></option> <option>Текст</option> <option>Текст</option> <option>Текст</option> </select> </td> <td><button type='submit' id='continue' name='submit'>Готово</button> </td> </tr> </table> </form> </body> </html> |
В очередной раз - огромное спасибо!!!:)
|
Часовой пояс GMT +3, время: 01:12. |