I did the table, which simplified variant is below. It's working fine, but I'm curious about:
1) Why, it doesn't work if I change from:
var tbody = document.getElementById(id);
<table><tbody id="newtab">
to:
var tbody = document.getElementById(id).getElementsByTagName(tbody);
<table id="newtab"><tbody>
2) Why it doesn't work if I use "var emptyTxtnode1" twice, instead of "var emptyTxtnode1" and "var emptyTxtnode2"
If anyone knows the answer I'd be very grateful. The code is here:
QUOTE
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
<head>
<title>Test </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/JavaScript">
function controlRows(id,control){
var tbody = document.getElementById(id);
var counter = document.getElementById(control).value;
if (tbody.childNodes.length > counter){
while (tbody.childNodes.length > counter) {
tbody.removeChild(tbody.lastChild);
}
}
else {
while (tbody.childNodes.length < counter) {
var row = document.createElement("TR");
var rowCount = tbody.rows.length + 1;
var rowNumber = document.createTextNode(rowCount);
var emptyTxtnode1 = document.createTextNode('-');
var emptyTxtnode2 = document.createTextNode('-');
var theButton = document.createElement('input');
var td1 = document.createElement("TD");
var td2 = document.createElement("TD");
var td3 = document.createElement("TD");
var td4 = document.createElement("TD");
theButton.setAttribute('type','Button');
theButton.setAttribute('value','Button');
td1.appendChild(rowNumber);
td2.appendChild(emptyTxtnode1);
td3.appendChild(emptyTxtnode2);
td4.appendChild(theButton);
row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
row.appendChild(td4);
tbody.appendChild(row);
}
}
}
</script>
</head>
<body>
<form name="form1">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td><select name="count" id="count" onChange="controlRows('newtab','count');">
<option value="5" selected>5</option>
<option value="10">10</option>
<option value="15">15</option>
</select></td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tbody id="newtab">
</tbody>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
<p>
<script language="JavaScript" type="text/JavaScript">
controlRows('newtab', 'count');
</script>
</body>
</html>
<HTML>
<head>
<title>Test </title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<script language="JavaScript" type="text/JavaScript">
function controlRows(id,control){
var tbody = document.getElementById(id);
var counter = document.getElementById(control).value;
if (tbody.childNodes.length > counter){
while (tbody.childNodes.length > counter) {
tbody.removeChild(tbody.lastChild);
}
}
else {
while (tbody.childNodes.length < counter) {
var row = document.createElement("TR");
var rowCount = tbody.rows.length + 1;
var rowNumber = document.createTextNode(rowCount);
var emptyTxtnode1 = document.createTextNode('-');
var emptyTxtnode2 = document.createTextNode('-');
var theButton = document.createElement('input');
var td1 = document.createElement("TD");
var td2 = document.createElement("TD");
var td3 = document.createElement("TD");
var td4 = document.createElement("TD");
theButton.setAttribute('type','Button');
theButton.setAttribute('value','Button');
td1.appendChild(rowNumber);
td2.appendChild(emptyTxtnode1);
td3.appendChild(emptyTxtnode2);
td4.appendChild(theButton);
row.appendChild(td1);
row.appendChild(td2);
row.appendChild(td3);
row.appendChild(td4);
tbody.appendChild(row);
}
}
}
</script>
</head>
<body>
<form name="form1">
<table width="100%" border="1" cellpadding="0" cellspacing="0">
<tr>
<td><select name="count" id="count" onChange="controlRows('newtab','count');">
<option value="5" selected>5</option>
<option value="10">10</option>
<option value="15">15</option>
</select></td>
<td>1</td>
<td>2</td>
<td>3</td>
</tr>
<tbody id="newtab">
</tbody>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
</tr>
</table>
</form>
<p>
<script language="JavaScript" type="text/JavaScript">
controlRows('newtab', 'count');
</script>
</body>
</html>