藍森林首頁 | 返回主頁 | 本站地圖 | 站內搜索 | 聯繫信箱 |
 您目前的位置:首頁 > 自由軟件 > 技術交流 > 應用編程


    

藍森林 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]




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 藍森林網站 版權所有。 E-mail : webmaster@lslnet.com