Добавление строк в таблицу
Сделал таким образом:
<table><tbody id=test> <tr><td>текст</td></tr> <tr><td>текст 2</td></tr> </tbody> <tr><td>текст 3</td></tr> </table> function test(){ document.getElementById('test').innerHTML+="<tr><td><input id=test2 type=text value=''></td></tr>"; } Т.е. после строки "текст 2", добавляется строка с полем для ввода при вызове функции test() Но столкнулся с проблемой: если я ввиду в поле для ввода текст и после ещё раз вызову функцию test(), то тот текст который я ввёл пропадал, как избавиться от такой проблемы? |
писать в другие ячейки таблицы. а так пишеш в одну и туже. у тебя всё правильно работает-в соответствии с тем что ты запрограмировал
|
Почему в одну и туже?
Дай код который ты предлагаешь? |
MCTrane
Для добавления строк и столбцов в таблицу используйте специальные методы: insertRow()/deleteRow(), insertCell()/deleteCell, moveRow() |
А как задать ID строки, столбцов или стиль?
|
Цитата:
|
По подробнее можно?
|
var myTr = myTable.insertRow(3); // четвёртая строка в myTable myTr.id = "foo"; // присваиваем id var myTd = myTr.insertCell(0); // первая ячейка в myTr myTd.className = "bar"; // присваиваем класс |
Спасибо, в мозиле и я думаю во всех браузерах работает, но как всегда IE всё настроение портит( Он строку добавляет, ид присваивает, но не делает вот это:
document.getElementById("test5").innerHTML="<td><input id=jk value=''></td><td>6</td>"; Вот мой код: var nRow=document.getElementById("test").insertRow(-1); nRow.id="test5"; document.getElementById("test5").innerHTML="<td><input id=jk value=''></td><td>6</td>"; Как добиться того чтобы в ИЕ этот код работал? Подскажите пожалуйста... |
В IE с таблицами можно работать только через специальные методы: insertCell, insertRow и т.д.
|
Я это знаю, никак нельзя обойтись без DOM?
Через JQuery никто не знает как сделать? |
В jQuery такого вообще нет.
Я не понимаю, чем вам так противны методы для работы с таблицей? |
В Jquery можно так сделать, я нашёл скрипт, но не знаю как вызвать функцию jquery(
Видимо придёться через DOM делать, у меня просто 7 столбиков надо добавить строку, хочу чтобы скрипт выполнял как можно меньше функций. Спасибо ещё раз. |
Как вариант:
<script src="http://code.jquery.com/jquery.min.js" type="text/javascript"></script> <style type="text/css"> td {border: 1px solid;} </style> <script type="text/javascript"> $(function(){ var array = [1,2,3], i = array.length; $('body').each(function(){ $(this).append('<a href="#">click</a>').one('click', function(){ //Создадим ссылку $(this).append('<table><tr/></table>'); //Создадим каркас while(i--){ //Добвим строки, количество которых равно длине массива $('table tbody > tr').append('<td>'+array[i]+'</td>'); } $('table tbody > tr').append('<td>4</td>'); //Добавим еще одну строку $('table tr > td:eq(1)').after('<td>5</td>'); //Добавим еще одну строку (третьей по счету будет) $('table').clone(true).insertAfter('table'); //Склонируем первую таблицу и вставим после второй }); }); }); </script> |
Спасибо, попробую)
|
Часовой пояс GMT +3, время: 12:55. |