guest786,
если что-то ещё то плюшки в личку
жать на циферку удалится раздел -- нажатие на минус сработает на всех строках раздела кроме последней.
<!DOCTYPE HTML>
<html>
<head>
<title>Untitled</title>
<meta charset="utf-8">
</head>
<body>
<a href="javascript://" onclick="add();return false;">Добавить раздел</a><br>
<a href="javascript://" onclick="add2();return false;">Добавить тему и описание</a><br>
<table id="tableid" cellspacing="0" border="1">
<tbody>
</tbody>
</table>
<script>
function add()
{
var table = document.querySelector('#tableid')
var tr = document.querySelectorAll('tr',table);
var tbody = document.querySelector('tbody',table);
var tr = tbody.insertRow(tr.length);
var td = tr.insertCell(0);
td.rowspan = 1;
td.innerHTML = '<textarea name="razdel[]"></textarea>';
td.className = "item";
td = tr.insertCell(0);
var item = document.querySelectorAll('td.item');
td.rowspan = 1;
td.innerHTML ='<input type="button" value="'+item.length+'" size="3" readonly onclick="deleteRow(this);">';
td.className = "number";
add2()
}
function add2()
{
var last = document.querySelectorAll('td.item'), len = last.length;
if(!len) return;
var table = document.querySelector('#tableid')
var tr = document.querySelectorAll('tr',table);
var tbody = document.querySelector('tbody',table);
var tr = tbody.insertRow(tr.length);
var td = tr.insertCell(0);
td.innerHTML = '<textarea name="theme[]"></textarea>';
td = tr.insertCell(1);
td.innerHTML = '<textarea name="desc[]"></textarea>';
td=tr.insertCell(2);
td.innerHTML='<input type="button" value="-" onclick="deleteRow(this);">';
last[len-1].rowSpan+=1;
last = document.querySelectorAll('td.number'), len = last.length;
last[len-1].rowSpan+=1;
}
function deleteRow(t)
{
var row = t.parentNode.parentNode;
var i = row.rowIndex;
if(row.querySelector('td.item')){
var qt = row.querySelector('td.item').rowSpan;
for (var k=0; k<qt; k++) {
document.getElementById("tableid").deleteRow(i);
}
var number = document.querySelectorAll('td.number');
for (var i=0; i<number.length; ) {
number[i].innerHTML ='<input type="button" value="'+(++i)+'" size="3" readonly onclick="deleteRow(this);">';//если востановление нумерации ненужно убрать
}
return;
}
if(row.previousSibling.cells[0].rowSpan == 2) return;
document.getElementById("tableid").deleteRow(i);
for (; row = document.getElementById("tableid").rows[--i];) {
if(row.querySelector('td.item')) {
row.querySelector('td.item').rowSpan -= 1;
row.querySelector('td.number').rowSpan -= 1;
break;
}
}
}
</script>
</body>
</html>