Menu
Hi,
I have an existing table that needs to be updated from values added by the user. I would like to use the createElement function to add additional information….
Here is the existing table:
[code]
<table id=dates border=0 width=100% STYLE=”font-family:Arial;font-size:10pt”>
<tr>
<td align=center><span class=label>Jan 22, 2006</span>
</tr>
.
.
.
Using JavaScript and the createElement etc., how would I insert another” <td align=center><span class=label>new date</span>” into the document?
I’ve been playing around with appendChild, getElemetsByTagName, etc., but so far have no success.
Any help would be appreciated!
Mike
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td align=center><span class=label>Jan 22, 2006</span></td>
</tr>
</tbody>
</table>
<br><br>
<script type="text/javascript">
function addE(){
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0]
var j=document.createElement("tr");
var b=document.createElement("td");
b.appendChild(document.createTextNode("hi"))
b.align="center"
j.appendChild(b)
e.appendChild(j)
}
</script>
<input type="button" onclick="addE()" value="add row">
<i>
</i><tr><td style="text-align:center;"><span class="label">new date</span></td></tr>
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td style="text-align:center"><span class=label>Jan 22, 2006</span></td>
</tr>
</tbody>
</table>
<br><br>
<script type="text/javascript">
function addE(){
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0]
var j=document.createElement("tr");
var b=document.createElement("td");
var s=document.createElement("span");
s.className="label";
var t=document.createTextNode("new date");
s.appendChild(t);
b.appendChild(s)
b.style.textAlign="center"
j.appendChild(b)
e.appendChild(j)
}
</script>
<input type="button" onclick="addE()" value="add row">
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td style="text-align:center"><span class=label>Jan 22, 2006</span></td><td style="text-align:center"><span class=label>Jan 23, 2006</span></td><td style="text-align:center"><span class=label>Jan 24, 2006</span></td>
</tr>
<tr>
<td style="text-align:center"><span class=label>Jan 25, 2006</span></td><td style="text-align:center"><span class=label>Jan 26, 2006</span></td><td style="text-align:center"><span class=label>Jan 27, 2006</span></td>
</tr>
</tbody>
</table>
<br><br>
<script type="text/javascript">
function addE(){
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0];
e=e.getElementsByTagName("tr")[0];
e=e.getElementsByTagName("td")[1];
var sp=e.getElementsByTagName("span")[0];
var s=document.createElement("span");
s.className="label";
var t=document.createTextNode("new date");
s.appendChild(t);
e.removeChild(sp);
e.appendChild(s);
}
</script>
<input type="button" onclick="addE()" value="change 1st tr 2nd td">
<i>
</i>var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0];
e=e.getElementsByTagName("tr")[0];
e=e.getElementsByTagName("td")[0];
var sp=e.getElementsByTagName("span")[0];
for(i=0;i<7;i++){
s=document.createElement("span");
s.className="label";
var t=document.createTextNode(arrD[i]);
s.appendChild(t);
//e.removeChild(sp);
e.appendChild(s);
}
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td style="text-align:center"><span class=label>Jan 22, 2006</span></td><td style="text-align:center"><span class=label>Jan 23, 2006</span></td><td style="text-align:center"><span class=label>Jan 24, 2006</span></td>
</tr>
<tr>
<td style="text-align:center"><span class=label>Jan 25, 2006</span></td><td style="text-align:center"><span class=label>Jan 26, 2006</span></td><td style="text-align:center"><span class=label>Jan 27, 2006</span></td>
</tr>
</tbody>
</table>
<br><br>
<script type="text/javascript">
var arrD=[1,2,3,4,5,6,7,8]
function addE(){
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0];
e=e.getElementsByTagName("td");
for(i=0;i<7;i++){
s=document.createElement("span");
s.className="label";
var t=document.createTextNode(arrD[i]);
s.appendChild(t);
e[i].removeChild(e[i].getElementsByTagName("span")[0])
e[i].appendChild(s);
}
}
</script>
<input type="button" onclick="addE()" value="change 1st tr 2nd td">
<i>
</i>var arrD = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0];
e=e.getElementsByTagName("td");
// e[0].removeChild(e[0].getElementsByTagName("span")[0])
for(i=0;i<7;i++){
s=document.createElement("span");
s.className="label";
t=document.createTextNode(arrD[i]);
s.appendChild(t);
e[i].appendChild(s);
}
<i>
</i>for(var i=1,t,s;i<7;i++)
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td align=center><span class=label>Sun</span></td>
</tr>
<tr>
<td align=center><span id=sp0 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp7 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp14 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp21 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp28 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp35 onclick="changeBg(this.id)">1</span></td>
</tr>
</tbody>
</table>
<i>
</i><table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td align=center><span class=label>Sun</span></td>
</tr>
<tr>
<td align=center><span id=sp0 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp7 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp14 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp21 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp28 onclick="changeBg(this.id)">1</span></td>
</tr>
<tr>
<td align=center><span id=sp35 onclick="changeBg(this.id)">1</span></td>
</tr>
</tbody>
</table>
<br><br>
<script type="text/javascript">
function addE(){
var arrD = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
var e=document.getElementById("dates");
e=e.getElementsByTagName("tbody")[0];
e=e.getElementsByTagName("tr")[0];
var els=e.getElementsByTagName("td");
for(var j=els.length-1;j>=0;j--){
//alert(j)
e.removeChild(els[j])
}
for(var i=0,t,s,td;i<7;i++){
td=document.createElement("td");
td.style.textAlign="center";
s=document.createElement("span");
s.className="label";
t=document.createTextNode(arrD[i]);
s.appendChild(t);
td.appendChild(s)
e.appendChild(td);
}
}
</script>
<input type="button" onclick="addE()" value="update entire table">
<i>
</i><html>
<head>
<style type="text/css">
span.label {color:black;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
span.c1 {color:black;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
span.c2 {color:red;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
span.c3 {color:#b0b0b0;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 12px Arial}
</style>
<script language="JavaScript1.2">
function disappear(id){
document.getElementById(id).style.visibility="hidden";
}
function appear(id){
document.getElementById(id).style.visibility="visible";
}
/////////////////////////////////////////
function createCalendar(){
var now = new Date
var mm = now.getMonth()
var yyyy = now.getFullYear()
var temp=yyyy-1;
var i,s,t;
var arrM = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
var arrD = new Array("Sun","Mon","Tue","Wed","Thu","Fri","Sat")
var table=document.getElementById("dates");
var body=table.getElementsByTagName("tbody")[0];
var row=body.getElementsByTagName("tr")[0];
var oldCol=row.getElementsByTagName("td");
for(var j=oldCol.length-1;j>=0;j--){
row.removeChild(oldCol[j])
}
for(var i=0,t,s,td;i<7;i++){
td=document.createElement("td");
td.style.textAlign="center";
s=document.createElement("span");
s.className="label";
t=document.createTextNode(arrD[i]);
s.appendChild(t);
td.appendChild(s);
row.appendChild(td);
}
//now add the table data for the dates
var count=0,k;
for(k=1;k<=6;k++){ <br/>
row=body.getElementsByTagName("tr")[k];
oldCol=row.getElementsByTagName("td");
for( j=oldCol.length-1;j>=0;j--){
row.removeChild(oldCol[j])
}
for( i=0;i<=6;i++){
td=document.createElement("td");
td.style.textAlign="center";
s=document.createElement("span");
s.id="sp"+count;
// s.onclick=changeBg(s.id); /////////////////////// this is not working
t=document.createTextNode("");
s.appendChild(t);
td.appendChild(s)
row.appendChild(td);
count++;
}
}
for(i=0;i<=11;i++){
document.forms['calForm'].selMonth.options[i]=new Option(arrM[i],i);
}
document.calForm.selMonth.value=mm
for(i=0;i<6;i++){
document.forms['calForm'].selYear.options[i] = new Option(temp,temp);
temp+=1;
}
document.calForm.selYear.value=yyyy;
changeCal()
appear('calendar');
}
/////////////////////////////////////
function maxDays(mm, yyyy){
var mDay;
if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){
mDay = 30;
}
else{
mDay = 31
if(mm == 1){
if (yyyy/4 - parseInt(yyyy/4) != 0){
mDay = 28
}
else{
mDay = 29
}
}
}
return mDay;
}
function changeBg(id){
object=document.getElementById(id);
if(object.innerHTML=="")return false;
if (object.style.backgroundColor != "yellow"){
object.style.backgroundColor = "yellow"
}
else{
object.style.backgroundColor = "#b0ffff"
}
}
function changeCal(){
var now = new Date
var dd = now.getDate()
var mm = now.getMonth()
var dow = now.getDay()
var yyyy = now.getFullYear()
var currM = parseInt(document.calForm.selMonth.value)
var prevM
if (currM!=0){
prevM = currM - 1
}
else{
prevM = 11
}
var currY = parseInt(document.calForm.selYear.value)
var mmyyyy = new Date()
mmyyyy.setFullYear(currY)
mmyyyy.setMonth(currM)
mmyyyy.setDate(1)
var day1 = mmyyyy.getDay()
if (day1 == 0){
day1 = 7
}
var arrN = new Array(41)
var aa
for (ii=0;ii<day1;ii++){
arrN[ii] = "" // maxDays((prevM),currY) - day1 + ii + 1
}
aa = 1
for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){
arrN[ii] = aa
aa += 1
}
aa = 1
for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
arrN[ii] ="" // aa
aa += 1
}
for (ii=0;ii<=41;ii++){
eval("sp"+ii).style.backgroundColor = "#b0ffff"
}
var dCount = 0
for (ii=0;ii<=41;ii++){
if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
eval("sp"+ii).innerHTML = arrN[ii]
eval("sp"+ii).className = "c3"
}
else{
eval("sp"+ii).innerHTML = arrN[ii]
if ((dCount==0)||(dCount==6)){
eval("sp"+ii).className = "c2"
}
else{
eval("sp"+ii).className = "c1"
}
if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){
eval("sp"+ii).style.backgroundColor="#90EE90"
}
}
dCount += 1
if (dCount>6){
dCount=0
}
}
}
</script>
</head>
<body id="body" bgcolor="#b0ffff" >
<div id=calendar style="cursor:default;position:absolute;z-index:100;visibility:hidden;top:20;left:200;border-left:3px solid #ffffff;border-right:3px solid #999999;border-top:3px solid #ffffff;border-bottom:3px solid #999999;background-color:#b0ffff">
<div id=cal_title style="cursor:hand;cursor:pointer;font:bold 13px Arial;color:white;position:relative;height:25;width=250;top:0;left:0;background-color:blue;border:2px solid white">Calendar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input name="close_cal" STYLE="font-family:Arial;font-size:13pt;height:20;width:20;font:bold" type="Button" value="X" tabindex=-1 onClick="disappear('calendar')">
</div>
<form name=calForm>
<table border=0 width=250>
<tr>
<td>
<table width=100% border=0>
<tr>
<td align=left>
<select name="selMonth" onChange="changeCal()">
<option value=""></option>
</select>
</td>
<td align=right>
<select name="selYear" onChange="changeCal()">
<option value=""></option>
</select>
</td>
</tr>
</table>
<table id=dates border=0 width=100% STYLE="font-family:Arial;font-size:10pt">
<tbody>
<tr>
<td align=center><span class=label>Sun</span></td>
</tr>
<tr>
<td align=center><span id=sp0 onclick="changeBg('sp0')">1</span></td>
</tr>
<tr>
<td align=center><span id=sp7 onclick="changeBg('sp7')">1</span></td>
</tr>
<tr>
<td align=center><span id=sp14 onclick="changeBg('sp14')">1</span></td>
</tr>
<tr>
<td align=center><span id=sp21 onclick="changeBg('sp21')">1</span></td>
</tr>
<tr>
<td align=center><span id=sp28 onclick="changeBg('sp28')">1</span></td>
</tr>
<tr>
<td align=center><span id=sp35 onclick="changeBg('sp35')">1</span></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</form>
</div>
<input type=button value=Calendar name=calendar_button onclick="createCalendar()">
</body>
</html>
<i>
</i> // s.onclick=changeBg(s.id); /////////////////////// this is not working
<i>
</i>s.onclick=function(){changeBg(this)};
<i>
</i>function changeBg(object){
if(object.innerHTML=="")return false;
if (object.style.backgroundColor != "yellow"){
object.style.backgroundColor = "yellow"
}
else{
object.style.backgroundColor = "#b0ffff"
}
}
<i>
</i><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html dir="ltr" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Style-Type" content="text/css">
<meta http-equiv="Content-Script-Type" content="text/javascript">
<title></title>
<style type="text/css">
tr.label td{color:black;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
td.c1 {color:black;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
td.c2 {color:red;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 13px Arial}
td.c3 {color:#b0b0b0;width:30;height:16;text-align:center;margin-top:0;background:#b0ffff;font:bold 12px Arial}
tr.ctd td{text-align:center;}
</style>
<script type="text/javascript">
function createCalendar(){
changeCal();
calendar.style.display="block";
}
function maxDays(mm, yyyy){
var mDay;
if((mm == 3) || (mm == 5) || (mm == 8) || (mm == 10)){
mDay = 30;
}
else{
mDay = 31
if(mm == 1){
if (yyyy/4 - parseInt(yyyy/4) != 0){
mDay = 28
}
else{
mDay = 29
}
}
}
return mDay;
}
function changeBg(object){
if( !(object.firstChild) || !(object.firstChild.data) || object.firstChild.data=="")return false;
if(tableElements[selectedDay]==object){
if (object.style.backgroundColor != "lime"){
object.style.backgroundColor = "lime"
}
else{
object.style.backgroundColor = "rgb(114,238,114)"
}
return true
}
if (object.style.backgroundColor != "yellow"){
object.style.backgroundColor = "yellow"
}
else{
object.style.backgroundColor = "#b0ffff"
}
return true
}
function changeCal(){
selectedDay=0;
var o=7,now = new Date(),dd = now.getDate(),mm = now.getMonth(),dow = now.getDay(),yyyy = now.getFullYear();
var currM = parseInt(document.calForm.selMonth.value),prevM;
if (currM!=0){
prevM = currM - 1
}
else{
prevM = 11
}
var currY = parseInt(document.calForm.selYear.value)
var mmyyyy = new Date()
mmyyyy.setFullYear(currY)
mmyyyy.setMonth(currM)
mmyyyy.setDate(1)
var day1 = mmyyyy.getDay()
if (day1 == 0){
day1 = 7
}
var arrN = new Array(41)
var aa
for (ii=0;ii<day1;ii++){
arrN[ii] = "" // maxDays((prevM),currY) - day1 + ii + 1
}
aa = 1
for (ii=day1;ii<=day1+maxDays(currM,currY)-1;ii++){
arrN[ii] = aa
aa += 1
}
aa = 1
for (ii=day1+maxDays(currM,currY);ii<=41;ii++){
arrN[ii] ="" // aa
aa += 1
}
for (ii=0;ii<=41;ii++){
tableElements[ii+o].style.backgroundColor = "#b0ffff"
}
var dCount = 0
for (ii=0;ii<=41;ii++){
if (((ii<7)&&(arrN[ii]>20))||((ii>27)&&(arrN[ii]<20))){
tableElements[ii+o].innerHTML = arrN[ii]
tableElements[ii+o].className = "c3"
}
else{
tableElements[ii+o].innerHTML = arrN[ii]
if ((dCount==0)||(dCount==6)){
tableElements[ii+o].className = "c2"
}
else{
tableElements[ii+o].className = "c1"
}
if ((arrN[ii]==dd)&&(mm==currM)&&(yyyy==currY)){
tableElements[ii+o].style.backgroundColor="rgb(114,238,114)";//#90EE90
selectedDay=ii+o;
}
}
dCount += 1
if (dCount>6){
dCount=0
}
}
}
</script>
<script type="text/javascript">
var tableElements,table,calendar,selectedDay;
onload=function(){
table=document.getElementById("dates");
var body=table.getElementsByTagName("tbody")[0];
tableElements=body.getElementsByTagName("td");
calendar=document.getElementById("calendar")
var now = new Date
var mm = now.getMonth()
var yyyy = now.getFullYear()
var temp=yyyy-1;
var i,s,t;
var arrM = new Array("January","February","March","April","May","June","July","August","September","October","November","December");
for(i=0;i<=11;i++){
document.forms['calForm'].selMonth.options[i]=new Option(arrM[i],i);
}
document.calForm.selMonth.value=mm
for(i=0;i<6;i++){
document.forms['calForm'].selYear.options[i] = new Option(temp,temp);
temp+=1;
}
document.calForm.selYear.value=yyyy;
for(i=7;i<45;i++)
tableElements[i].onclick=function(){changeBg(this)}
}
</script>
</head>
<body id="body" style="background-color:#b0ffff;">
<div id=calendar style="cursor:default;position:absolute;z-index:100;top:20px;left:200px;border-left:3px solid #ffffff;border-right:3px solid #999999;border-top:3px solid #ffffff;border-bottom:3px solid #999999;background-color:#b0ffff;display:none;">
<div id=cal_title style="cursor:hand;cursor:pointer;font:bold 13px Arial;color:white;position:relative;height:25px;width:250px;top:0;left:0;background-color:blue;border:2px solid white">Calendar&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <input name="close_cal" style="font-family:Arial;font-size:13pt;height:20px;width:20px;font:bold" type="Button" value="X" tabindex="0" onclick="calendar.style.display='none';">
</div>
<form name="calForm" action="#">
<table style="width:250px; border:0;">
<tbody>
<tr>
<td>
<table style="width:100%; border:0;">
<tr>
<td align=left>
<select name="selMonth" onChange="changeCal()">
<option value=""></option>
</select>
</td>
<td align=right>
<select name="selYear" onChange="changeCal()">
<option value=""></option>
</select>
</td>
</tr>
</tbody>
</table>
<table id="dates" style="font-family:Arial;font-size:10pt;width:100%; border:0;">
<tbody>
<tr class="label">
<td>Sun</td><td>Mon</td><td>Tue</td><td>Wed</td><td>Thu</td><td>Fri</td><td>Sat</td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
<tr class="ctd">
<td></td><td></td><td></td><td></td><td></td><td></td><td></td>
</tr>
</tbody>
</table>
</td>
</tr>
</table>
</form>
</div> <br/>
<div>
<input type="button" value="Calendar" name="calendar_button" onclick="createCalendar()">
</div>
</body>
</html>
<i>
</i><input type=text name=calculate id=calculate value="">
0.1.9 — BETA 5.19