Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Добавить/удалить строки в таблице (https://javascript.ru/forum/dom-window/34341-dobavit-udalit-stroki-v-tablice.html)

zerojava 30.12.2012 02:17

Добавить/удалить строки в таблице
 
Есть работающий код который добавляет и удаляет строки в таблице. Подскажите пожалуйста как сделать чтобы удалялось и добавлялось только определенное кол-во строк? К примеру мин. = 3, макс = 8 строк в указанной таблице

<script>
function deleteRow()
{
document.getElementById("myTable").deleteRow(0);
}
function addRow()
{
var table=document.getElementById("myTable");
var row=table.insertRow(0);
var cell=row.insertCell(0);
cell.innerHTML="cell";
}
</script>

<table id="myTable" border="1">
  <tr>
    <td>cell</td>
  </tr>
  <tr>
    <td>cell</td>
  </tr>
  <tr>
    <td>cell</td>
  </tr>
  <tr>
    <td>cell</td>
  </tr>
</table>
<br>
<button type="button" onclick="deleteRow()">-</button> <button type="button" onclick="addRow()">+</button>

zerojava 30.12.2012 16:09

Цитата:

Сообщение от Дзен-трансгуманист (Сообщение 224308)
У таблиц есть свойство rows, являющееся live-коллекцией строк, из него и узнается их количество.

Это то что мне было нужно! Спасибо за помощь и подсказку!

zerojava 30.12.2012 23:09

Возникла необходимость явно указывать кол-во ячеек в таблице. Подскажите пожалуйста еще как привязать скрипт к списку <select>. Чтобы при выборе кол-ва ячеек в списке, соответстовавало кол-ву ячеек в таблице

<select name="select">
<option value="5" selected="selected">5 шт</option>
<option value="6">6 шт</option>
<option value="7">7 шт</option>
<option value="8">8 шт</option>
<option value="9">9 шт</option>
</select>

zerojava 31.12.2012 03:03

Цитата:

Сообщение от Дзен-трансгуманист
Если нужно больше чем есть, то добавьте сколько нужно через цикл.
Если нужно меньше - через цикл же и удалите.

к сожалению я не знаю как это сделать... а "живого примера" у Вас нет?

zerojava 31.12.2012 16:43

Спасибо за подробное описание. Но я хотел бы явно привязать добавление к элементу <select>. чтобы значение value соответствовало кол-ву строк в таблице. Чтоб строки добавлялись и удалялись только после первой строки, внутри таблицы.

Пробовал так, но не работает :(
<script>
function Rows ( count, relative ) {
  var table = document.getElementById( "myTable" );
  var rows = table.rows;
  var count = document.getElementById("rows")[4].value;
	table.insertRow( 1 ).insertCell( 1 ).innerHTML = "";
}
</script>

<select name="select" id="rows" onchange="Rows()">
	<option value="4">4 шт</option>
	<option value="5" selected="selected">5 шт</option>
	<option value="6">6 шт</option>
	<option value="7">7 шт</option>
	<option value="8">8 шт</option>
	<option value="9">9 шт</option>
</select>
<br/>
<table id="myTable" border="1">
<tr><td>row 1</td></tr>
<tr><td>row 2</td></tr>
<tr><td>row 3</td></tr>
<tr><td>row 4</td></tr>
</table>


Часовой пояс GMT +3, время: 08:38.