|
藍森林 http://www.lslnet.com 2006年8月25日 8:28
表格操作!
在CSDN上看到的問題,想了半天沒有思路
要求(紅色字為我加的)如圖:
[attach]2070[/attach] |
上面那種情況是符合了,不知道單元格複雜點會不會出錯。。 -_-
[html]
<style>
td{background:#f2f3f7;width:30;height:20;}
</style>
<table cellspacing=1 bgcolor=#cccccc id=phx>
<tr>
<td>1</td><td>6</td><td>11</td><td>45</td><td>789</td>
</tr>
<tr>
<td>2</td><td>7</td><td rowspan=2 colspan=2>20</td><td>67</td>
</tr>
<tr>
<td>3</td><td>8</td><td>4</td>
</tr>
<tr>
<td>4</td><td>9</td><td>15</td><td>46</td><td>6</td>
</tr>
<tr>
<td>5</td><td>0</td><td>14</td><td>664</td><td>4</td>
</tr>
</table>
<script>
window.onerror=function(err,url,line){
alert('在代碼 '+line+' 行發生錯誤: '+err+'\r\r錯誤原因: 表格中行 '+(r+1)+' 列 '+(phxcols+1)+' 單元格空缺');
return true;
}
var c=0
for(var i=0;i<phx.rows[0].cells.length;i++){
c+=phx.rows[0].cells[i].getAttribute("colspan");
}
var data=new Array(phx.rows.length)
for(var r=0;r<phx.rows.length;r++){
data[r]=new Array(c);
}
for(var r=0;r<phx.rows.length;r++){
phxcols=0;
for(var i=0;i<c;i++){
if(data[r][i]==undefined){
for(var row=0;row<phx.rows[r].cells[phxcols].getAttribute("rowspan");row++){
for(var cols=0;cols<phx.rows[r].cells[phxcols].getAttribute("colspan");cols++){
data[r+row][i+cols]=phx.rows[r].cells[phxcols].innerText;
}
}
phxcols++;
}
}
}
demo="";
for(var c=0;c<data.length;c++){
for(var r=0;r<data.length;r++){
demo+="data["+r+"]["+c+"]: "+data[r][c]+"; "
}
demo+="\r"
}
alert(demo)
alert(data)
</script>[/html]
[html]<style>
td{background:#f2f3f7;width:30;height:20;}
</style>
<table cellspacing=1 bgcolor=#cccccc id=phx>
<tr>
<td>1</td><td>6</td><td>11</td><td>45</td><td>789</td>
</tr>
<tr>
<td>2</td><td>7</td><td rowspan=2 colspan=2>20</td><td>67</td>
</tr>
<tr>
<td>3</td><td>8</td><td>4</td>
</tr>
<tr>
<td>4</td><td>9</td><td>15</td><td>46</td>
</tr>
<tr>
<td>5</td><td>0</td><td>14</td><td>664</td><td>4</td>
</tr>
</table>
<script>
window.onerror=function(err,url,line){
alert('在代碼 '+line+' 行發生錯誤: '+err+'\r\r錯誤原因: 表格中行 '+(r+1)+' 列 '+(phxcols+1)+' 單元格空缺');
return true;
}
var c=0
for(var i=0;i<phx.rows[0].cells.length;i++){
c+=phx.rows[0].cells[i].getAttribute("colspan");
}
var data=new Array(phx.rows.length)
for(var r=0;r<phx.rows.length;r++){
data[r]=new Array(c);
}
for(var r=0;r<phx.rows.length;r++){
phxcols=0;
for(var i=0;i<c;i++){
if(data[r][i]==undefined){
for(var row=0;row<phx.rows[r].cells[phxcols].getAttribute("rowspan");row++){
for(var cols=0;cols<phx.rows[r].cells[phxcols].getAttribute("colspan");cols++){
data[r+row][i+cols]=phx.rows[r].cells[phxcols].innerText;
}
}
phxcols++;
}
}
}
demo="";
for(var c=0;c<data.length;c++){
for(var r=0;r<data.length;r++){
demo+="data["+r+"]["+c+"]: "+data[r][c]+"; "
}
demo+="\r"
}
alert(demo)
alert(data)
</script>[/html] |
改了一下!!
[html]
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=gb2312">
<title> New Document -51windows.Net</title>
<style>
* {font:menu}
td
{
background: #f2f3f7;
width: 30;
height: 20;
}
</style>
<table cellspacing = 1 bgcolor = #cccccc id = phx>
<tr>
<td>1</td>
<td>11</td>
<td>21</td>
<td>31</td>
<td>41</td>
<td>51</td>
</tr>
<tr>
<td>2</td>
<td colspan="2" rowspan="3">*</td>
<td>32</td>
<td>42</td>
<td>52</td>
</tr>
<tr>
<td>3</td>
<td>33</td>
<td>43</td>
<td>53</td>
</tr>
<tr>
<td>4</td>
<td>34</td>
<td colspan="2" rowspan="2">**</td>
</tr>
<tr>
<td>5</td>
<td>15</td>
<td>25</td>
<td>35</td>
</tr>
<tr>
<td>6</td>
<td>16</td>
<td>26</td>
<td>36</td>
<td>46</td>
<td>56</td>
</tr>
<tr>
<td>7</td>
<td>17</td>
<td>27</td>
<td>37</td>
<td>47</td>
<td>57</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>28</td>
<td>38</td>
<td>48</td>
<td>58</td>
</tr>
</table>
</center>
<script>
window.onerror = function(err, url, line)
{
alert('在代碼 ' + line + ' 行發生錯誤: ' + err + '\r\r錯誤原因: 表格中行 ' + (r + 1) + ' 列 ' + (phxcols + 1)
+ ' 單元格空缺');
return true;
}
var c = 0
for (var i = 0; i < phx.rows[0].cells.length; i++)
{
c += phx.rows[0].cells[i].getAttribute("colspan");
}
var data = new Array(phx.rows.length)
for (var r = 0; r < phx.rows.length; r++)
{
data[r] = new Array(c);
}
for (var r = 0; r < phx.rows.length; r++)
{
phxcols = 0;
for (var i = 0; i < c; i++)
{
if (data[r][i]== undefined)
{
for (var row = 0; row < phx.rows[r].cells[phxcols].getAttribute("rowspan"); row++)
{
for (var cols = 0; cols < phx.rows[r].cells[phxcols].getAttribute("colspan"); cols++)
{
data[r + row][i + cols] = phx.rows[r].cells[phxcols].innerText;
}
}
phxcols++;
}
}
}
demo = "";
for (var c = 0; c< data.length; c++)
{
for (var r = 0; r < data.length; r++)
{
if (data[r][c]!=undefined)
{
demo += "data[" + r + "][" + c + "]: " + data[r][c] + ";\t"
}
}
demo += "\r"
}
alert(data)
alert(demo)
</script>
</body>
</html>
[/html] |
http://www.51windows.net/hw/asp/jsview.asp?id=332
[html]
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=gb2312">
<title>拆分單元格-www.51windows.Net-www.51windows.Net</title>
<style>
* {font:menu}
td
{
background: #f2f3f7;
/*width: 30;*/
height: 20;
text-align: center;
}
table
{
width: 200;
}
</style>
<body>
<table cellspacing = 1 bgcolor = #cccccc id = phx align=left>
<tr>
<td>1</td>
<td>11</td>
<td>21</td>
<td>31</td>
<td>41</td>
<td>51</td>
</tr>
<tr>
<td>2</td>
<td colspan="2" rowspan="3">*</td>
<td>32</td>
<td>42</td>
<td>52</td>
</tr>
<tr>
<td>3</td>
<td>33</td>
<td>43</td>
<td>53</td>
</tr>
<tr>
<td>4</td>
<td>34</td>
<td colspan="2" rowspan="2">**</td>
</tr>
<tr>
<td>5</td>
<td>15</td>
<td>25</td>
<td>35</td>
</tr>
<tr>
<td>6</td>
<td colspan="2" rowspan="2">***</td>
<td>36</td>
<td>46</td>
<td>56</td>
</tr>
<tr>
<td>7</td>
<td>37</td>
<td>47</td>
<td>57</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>28</td>
<td>38</td>
<td>48</td>
<td>58</td>
</tr>
</table>
<table cellspacing = 1 bgcolor = #cccccc id = phx2>
<tr>
<td>1</td>
<td>11</td>
<td>21</td>
<td>31</td>
<td>41</td>
<td>51</td>
</tr>
<tr>
<td>2</td>
<td colspan="5" rowspan="6">**</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>28</td>
<td>38</td>
<td>48</td>
<td>58</td>
</tr>
</table>
<br/> <button onclick='split_table(phx);'>拆分表格一</button> <button onclick='split_table(phx2);'>拆分表格二</button> <br/><br/>
<div id="newtable"></div>
<script>
window.onerror = function(err, url, line)
{
alert('在代碼 ' + line + ' 行發生錯誤: ' + err + '\r\r錯誤原因: 表格中行 ' + (r + 1) + ' 列 ' + (phxcols + 1)
+ ' 單元格空缺');
return true;
}
function split_table(phx)
{
//作者:panliu888
//修改:海娃
//2004-3-8
var c = 0
for (var i = 0; i < phx.rows[0].cells.length; i++)
{
c += phx.rows[0].cells[i].getAttribute("colspan");
}
var data = new Array(phx.rows.length)
for (var r = 0; r < phx.rows.length; r++)
{
data[r] = new Array(c);
}
for (var r = 0; r < phx.rows.length; r++)
{
phxcols = 0;
for (var i = 0; i < c; i++)
{
if (typeof(data[r][i])== "undefined")
{
for (var row = 0; row < phx.rows[r].cells[phxcols].getAttribute("rowspan"); row++)
{
for (var cols = 0; cols < phx.rows[r].cells[phxcols].getAttribute("colspan"); cols++)
{
data[r + row][i + cols] = phx.rows[r].cells[phxcols].innerText;
}
}
phxcols++;
}
}
}
demo = "";
tablehtml = "";
for (var c = 0; c< data.length; c++)
{
tablehtml += "<tr>"
for (var r = 0; r < data.length; r++)
{
if (typeof(data[c][r])!="undefined")
{
tablehtml += "<td>" + data[c][r] + "</td>"
demo += "data[" + c + "][" + r + "]: =\"" + data[c][r] + "\";\t"
}
}
tablehtml += "</tr>"
demo += "\r"
}
//alert(data)
//alert(demo)
newtable.innerHTML = "<table cellspacing = 1 bgcolor = #cccccc>"+tablehtml+"</table>"
}
</script>
</body>
</html>
[/html] |
提示錯誤 |
?我這裡沒有錯嗎? |
OK了
var declared; //聲明變量。
if (declared == undefined) //測試變量。
document.write("declared has not been given a value.");
if (typeOf(notDeclared) == "undefined")
document.write("notDeclared has not been defined.");
[html]
<html>
<head>
<meta http-equiv = "Content-Type" content = "text/html; charset=gb2312">
<title>拆分單元格-www.51windows.Net-www.51windows.Net</title>
<style>
* {font:menu}
td
{
background: #f2f3f7;
/*width: 30;*/
height: 20;
text-align: center;
}
table
{
width: 200;
}
</style>
<body>
<table cellspacing = 1 bgcolor = #cccccc id = phx align=left>
<tr>
<td>1</td>
<td>11</td>
<td>21</td>
<td>31</td>
<td>41</td>
<td>51</td>
</tr>
<tr>
<td>2</td>
<td colspan="2" rowspan="3">*</td>
<td>32</td>
<td>42</td>
<td>52</td>
</tr>
<tr>
<td>3</td>
<td>33</td>
<td>43</td>
<td>53</td>
</tr>
<tr>
<td>4</td>
<td>34</td>
<td colspan="2" rowspan="2">**</td>
</tr>
<tr>
<td>5</td>
<td>15</td>
<td>25</td>
<td>35</td>
</tr>
<tr>
<td>6</td>
<td colspan="2" rowspan="2">***</td>
<td>36</td>
<td>46</td>
<td>56</td>
</tr>
<tr>
<td>7</td>
<td>37</td>
<td>47</td>
<td>57</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>28</td>
<td>38</td>
<td>48</td>
<td>58</td>
</tr>
</table>
<table cellspacing = 1 bgcolor = #cccccc id = phx2>
<tr>
<td>1</td>
<td>11</td>
<td>21</td>
<td>31</td>
<td>41</td>
<td>51</td>
</tr>
<tr>
<td>2</td>
<td colspan="5" rowspan="6">**</td>
</tr>
<tr>
<td>3</td>
</tr>
<tr>
<td>4</td>
</tr>
<tr>
<td>5</td>
</tr>
<tr>
<td>6</td>
</tr>
<tr>
<td>7</td>
</tr>
<tr>
<td>8</td>
<td>18</td>
<td>28</td>
<td>38</td>
<td>48</td>
<td>58</td>
</tr>
</table>
<br/> <button onclick='split_table(phx);'>拆分表格一</button> <button onclick='split_table(phx2);'>拆分表格二</button> <br/><br/>
<div id="newtable"></div>
<script>
window.onerror = function(err, url, line)
{
alert('在代碼 ' + line + ' 行發生錯誤: ' + err + '\r\r錯誤原因: 表格中行 ' + (r + 1) + ' 列 ' + (phxcols + 1)
+ ' 單元格空缺');
return true;
}
function split_table(phx)
{
//作者:panliu888
//修改:海娃
//2004-3-8
var c = 0
for (var i = 0; i < phx.rows[0].cells.length; i++)
{
c += phx.rows[0].cells[i].getAttribute("colspan");
}
var data = new Array(phx.rows.length)
for (var r = 0; r < phx.rows.length; r++)
{
data[r] = new Array(c);
}
for (var r = 0; r < phx.rows.length; r++)
{
phxcols = 0;
for (var i = 0; i < c; i++)
{
if (typeof(data[r][i])== "undefined")
{
for (var row = 0; row < phx.rows[r].cells[phxcols].getAttribute("rowspan"); row++)
{
for (var cols = 0; cols < phx.rows[r].cells[phxcols].getAttribute("colspan"); cols++)
{
data[r + row][i + cols] = phx.rows[r].cells[phxcols].innerText;
}
}
phxcols++;
}
}
}
demo = "";
tablehtml = "";
for (var c = 0; c< data.length; c++)
{
tablehtml += "<tr>"
for (var r = 0; r < data.length; r++)
{
if (typeof(data[c][r])!="undefined")
{
tablehtml += "<td>" + data[c][r] + "</td>"
demo += "data[" + c + "][" + r + "]: =\"" + data[c][r] + "\";\t"
}
}
tablehtml += "</tr>"
demo += "\r"
}
//alert(data)
//alert(demo)
newtable.innerHTML = "<table cellspacing = 1 bgcolor = #cccccc>"+tablehtml+"</table>"
}
</script>
</body>
</html>
[/html] |
|