求不规则TABLE赋值问题~``

glvicky 2007-08-30 09:31:10
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
</head>
<body>
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
</body>
</html>

类似于如此的表格,我想在13 14 15 16 17 20 21 22 23 24 27 28 29 30 31 位置赋值~``该如何实现?
谢谢各位~
...全文
211 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
glvicky 2007-08-30
  • 打赏
  • 举报
回复
当前问题已解决~
结贴,谢谢各位~``
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
18\19\25\26,是不赋值的,看看lz的原帖吧

27-31
由参数而定
<body onload="a('4,3','5,7','value')">
我只赋了2行
hjx398 2007-08-30
  • 打赏
  • 举报
回复
你的18\19\25-31都没有被赋值,也不知道你是不是特意的.大家一起学习了.
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
呵呵,我也没说你错啊
能不能实现lz用了就知道了
hjx398 2007-08-30
  • 打赏
  • 举报
回复
我的是按他的要求做的,因为一般的人都喜欢从1开始数,所以我在代码里减掉了,不管怎么说我的能完全的实现了他说的从第5行第3列到第7行第8列到赋值了,而你却不能实现.
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
to hjx398(娱乐主角):
13是在第5行第3列!
你说得没有错
不过,你那个只是索引行列
在table中13还是处在第5行,第4列的位置

让用户去判断,不如我们写程序的时候一次判断,n个用户受用
hjx398 2007-08-30
  • 打赏
  • 举报
回复
不好意思,我还以为不是你的帖子呢?,还有特别说明一点就是13是在第5行第3列!
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
<script language="javascript" type="text/javascript">
function fasfasd(a,b,value)
{
var table=document.getElementById("demoTable");
var a_arr=a.split(",");
a_arr[0]=parseInt(a_arr[0])-1;
a_arr[1]=parseInt(a_arr[1])-1;
var b_arr=b.split(",");
b_arr[0]=parseInt(b_arr[0])-1;
b_arr[1]=parseInt(b_arr[1])-1;
for(var i=parseInt(a_arr[0]);i<parseInt(b_arr[0])+1;i++)
{
for(var i2=0;i2<table.rows[i].cells.length;i2++)
{
if(i==parseInt(a_arr[0]) && i2>=parseInt(a_arr[1]))
table.rows[i].cells[i2].innerHTML=value;
if(i>parseInt(a_arr[0]) && i<parseInt(b_arr[0]))
table.rows[i].cells[i2].innerHTML=value;
if(i==parseInt(b_arr[0]) && i2<=parseInt(b_arr[1]))
table.rows[i].cells[i2].innerHTML=value;
}
}
}
</script>



</head>
<body onload="fasfasd('5,3','7,8','以被重新赋值');">
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
</body>
</html>
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
function fasfasd('5,4','7,8',value)
提醒:row,cell索引是从0开始,所以注意表格的行列次序
要么在参数里减掉一
function fasfasd('4,3','6,7',value)
要么在函数里减1
function fasfasd('5,4','7,8',value){
变成'4,3'和'6,7'
}

<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
<script>
function a(start,end,value){
var startRow=start.split(",")[0];
var startCell=start.split(",")[1];
var endRow=end.split(",")[0];
var endCell=end.split(",")[1];
var cellN=endCell-startCell+1;
var table=document.getElementById("demoTable");
//var len=table.rows.length;
for(var i=startRow;i<=endRow;i++){
var trObj=table.rows[i];
var trLen=trObj.childNodes.length;
for(var j=Math.min(startCell,trLen-cellN);j<Math.min(endCell+1,trLen);j++){
trObj.childNodes[j].innerText=value;
}
}
}
</script>
</head>
<body onload="a('4,3','5,7','value')">
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
</body>
</html>
yiran5467 2007-08-30
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
</head>
<body>
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
<script>
var tab=document.getElementById('demoTable');
function modifyTd(rowsStart,cellsStart,rowsEnd,cellsEnd,valueN){
for(k=rowsStart-1;k<rowsEnd;k++){
var cellsN=tab.rows[k].cells;
//alert(cellsN.length)
for(i=cellsStart-1;i<cellsEnd;i++){
cellsN[i].innerHTML=valueN;
}
}
}
modifyTd(5,3,7,7,'value');
</script>
</body>
</html>
glvicky 2007-08-30
  • 打赏
  • 举报
回复
谢谢,不用了,基本上能从
lihui_shine(浪尖赏花)
的第一个例子得出~
hjx398 2007-08-30
  • 打赏
  • 举报
回复
glvicky(偶不是猪猪) 你自己开新贴我来回答你
glvicky 2007-08-30
  • 打赏
  • 举报
回复
如果我要写一个方法,带入参数,从第几行几列开始,到第几行第几列结束,横向循环进行赋值(自动换行),该如何实现?

比如上一行,13位置应该是(5,4),31位置应该是(7,8),
function fasfasd('5,4','7,8',value){
....

这该如何写?
yiran5467 2007-08-30
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
</head>
<body>
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
<script>
var arr=['data1','data2','data3','data4','data5']
var tab=document.getElementById('demoTable');
function modifyTd(rowsNo,cellsNo){
var cellsN=tab.rows[rowsNo-1].cells;
for(i=cellsNo-1,j=0;i<cellsN.length;i++,j++){
cellsN[i].innerHTML=arr[j];
}
}
modifyTd(5,3);
modifyTd(6,3);
modifyTd(7,3);
</script>
</body>
</html>
hjx398 2007-08-30
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
<script language="javascript" type="text/javascript">
function $()
{
var data="13 14 15 16 17 20 21 22 23 24 27 28 29 30 31".split(" ");
var table=document.getElementById("demoTable");
for(var i=0;i<table.cells.length;i++)
{
for(var i2 in data)
{
if(i+1==parseInt(data[i2]))
{
table.cells[i].innerHTML="以被重新赋值";
}
}

}
}
</script>



</head>
<body onload="$();">
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
</body>
</html>
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
<html>
<head>
<meta http-equiv=Content-Type content="text/html; charset=gb2312">
<title>Method Test...</title>
<script>
function a(){
var table=document.getElementById("demoTable");
var len=table.rows.length;
for(var i=4;i<len;i++){
var trObj=table.rows[i];
var trLen=trObj.childNodes.length;
for(var j=trLen-5;j<trLen;j++){
alert(trObj.childNodes[j].innerText);
}
}
}
</script>
</head>
<body onload="a()">
<table id="demoTable" border="1" align=center cellspacing="1" cellpadding="0" bordercolor="#64ACE5" style="border-collapse:collapse" onclick="CreateTableMapping(this)">
<tr height=19>
<td colspan=8 height=19 width=554>1</td>
</tr>
<tr height=19>
<td colspan=3 rowspan=3 height=57>2</td>
<td colspan=3 >3</td>
<td rowspan=3 >4</td>
<td >5</td>
</tr>
<tr >
<td rowspan=2 height=38 >6</td>
<td colspan=2 >7</td>
<td rowspan=2 >8</td>
</tr>
<tr height=19>
<td height=19>9</td>
<td >10</td>
</tr>
<tr height=19 >
<td rowspan=3 height=57 >11</td>
<td colspan=2 >12</td>
<td >13</td>
<td >14</td>
<td >15</td>
<td >16</td>
<td >17</td>
</tr>
<tr height=19 >
<td height=19 >18</td>
<td >19</td>
<td >20</td>
<td >21</td>
<td >22</td>
<td >23</td>
<td >24</td>
</tr>
<tr height=19 >
<td height=19 >25</td>
<td >26</td>
<td >27</td>
<td >28</td>
<td >29</td>
<td >30</td>
<td >31</td>
</tr>
</table>
</body>
</html>
lap1983 2007-08-30
  • 打赏
  • 举报
回复
给td加规则id,根据数据插入位置选择插入td插入.
浪尖赏花 2007-08-30
  • 打赏
  • 举报
回复
<script>
function a(){
var table=document.getElementById("demoTable");
var len=table.rows.length;
for(var i=4;i<len;i++){
var trObj=table.rows[i];
var trLen=trObj.childNodes.length;
for(var j=trLen-5;j<trLen;j++){
alert(trObj.childNodes[j].innerText);
}
}
}
</script>
tantaiyizu 2007-08-30
  • 打赏
  • 举报
回复
13 14 15 16 17

----

这个特殊处理

后面的

用 childNodes 循环依次赋值即可

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧