再来100分求解,还是关于表格问题?

hcsunjun 2003-09-12 02:02:22
<table id=t width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="33%"> 00</td>
<td rowspan="2" colspan="2">01 </td>
<td rowspan="2" width="34%">02 </td>
</tr>
<tr>
<td width="33%"> 10</td>
</tr>
<tr>
<td rowspan="3" width="33%">20 </td>
<td width="14%" rowspan="2"> 21</td>
<td width="19%">22</td>
<td rowspan="3" width="34%">23</td>
</tr>
<tr>
<td width="19%">45</td>
</tr>
<tr>
<td colspan="2"> 30</td>
</tr>
<tr>
<td width="33%"> 40</td>
<td colspan="2"> 41</td>
<td width="34%"> 42</td>
</tr>
</table>

上表格中,如何知道21,22,45,30和41是一列上的
...全文
24 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
eva 2003-09-12
  • 打赏
  • 举报
回复
其实就是判断左边距右边据的问题,没那么难,
利用offset...属性应该可以做到你要做的事
eva 2003-09-12
  • 打赏
  • 举报
回复
前面我的代码中有些是没用的,只是用来做测试,请剔除

<table id=t width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="33%"> 00</td>
<td rowspan="2" colspan="2">01 </td>
<td rowspan="2" width="34%">02 </td>
</tr>
<tr>
<td width="33%"> 10</td>
</tr>
<tr>
<td rowspan="3" width="33%">20 </td>
<td width="14%" rowspan="2"> 21</td>
<td width="19%">22</td>
<td rowspan="3" width="34%">23</td>
</tr>
<tr>
<td width="19%">45</td>
</tr>
<tr>
<td colspan="2"> 30</td>
</tr>
<tr>
<td width="33%"> 40</td>
<td colspan="2"> 41</td>
<td width="34%"> 42</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
document.write('以第一行为准的第二列:');
get(t.rows[0].cells[1].offsetLeft,t.rows[0].cells[1].offsetLeft+t.rows[0].cells[1].offsetWidth);

function get(iLeft,iRight)
{
for (i=0;i<6;i++)
{
for (j=0;j<t.rows[i].cells.length;j++)
{
if ((iLeft == t.rows[i].cells[j].offsetLeft) || (iRight==t.rows[i].cells[j].offsetLeft+t.rows[i].cells[j].offsetWidth))
{
document.writeln('['+t.rows[i].cells[j].innerText+']');
}
}
}
}

</SCRIPT>
hcsunjun 2003-09-12
  • 打赏
  • 举报
回复
有用途,在研究用js合并单元格,拆分单元格的问题
也可用在选中某列,进行填充的时候
eva 2003-09-12
  • 打赏
  • 举报
回复
顺便问一下,这种问题有什么用出吗?
不知道是在什么情况下用?
eva 2003-09-12
  • 打赏
  • 举报
回复
以下得到倒数第二列

<table id=t width="100%" border="1" cellspacing="0" cellpadding="0">
<tr>
<td width="33%"> 00</td>
<td rowspan="2" colspan="2">01 </td>
<td rowspan="2" width="34%">02 </td>
</tr>
<tr>
<td width="33%"> 10</td>
</tr>
<tr>
<td rowspan="3" width="33%">20 </td>
<td width="14%" rowspan="2"> 21</td>
<td width="19%">22</td>
<td rowspan="3" width="34%">23</td>
</tr>
<tr>
<td width="19%">45</td>
</tr>
<tr>
<td colspan="2"> 30</td>
</tr>
<tr>
<td width="33%"> 40</td>
<td colspan="2"> 41</td>
<td width="34%"> 42</td>
</tr>
</table>
<SCRIPT LANGUAGE="JavaScript">
document.write('倒数第二列:');
get(t.rows[0].cells[1].offsetLeft+t.rows[0].cells[1].offsetWidth);

function get(iLeft)
{
var iTmp = null;
var cCount = null;
for (i=0;i<6;i++)
{
for (j=t.rows[i].cells.length-1;j>=0;j--)
{
if (t.rows[i].cells[j].innerText=="45")
{
alert(iLeft+" "+(t.rows[i].cells[j].offsetLeft+t.rows[i].cells[j].offsetWidth));
}
if (iLeft == (t.rows[i].cells[j].offsetLeft+t.rows[i].cells[j].offsetWidth))
{
document.writeln('['+t.rows[i].cells[j].innerText+']');
}
}
}
}

</SCRIPT>
eva 2003-09-12
  • 打赏
  • 举报
回复
To: yzwxjun(蝼蚁飞舞)
照你的说法应该是以表的第一行为基准
hcsunjun 2003-09-12
  • 打赏
  • 举报
回复
我是想用程序如何知道他们是在一列上
比如说我选中这一列,则怎样将这一列上的所有单元格背景变色???
CrazyDeng 2003-09-12
  • 打赏
  • 举报
回复
同意楼上的说法!
yzwxjun 2003-09-12
  • 打赏
  • 举报
回复
他们是在一列上,
21那一行分两列,一列21,另一列又分为两行,一行22,一行45
xiajiatou 2003-09-12
  • 打赏
  • 举报
回复
把问题说得明白一点,方便大家理解
eva 2003-09-12
  • 打赏
  • 举报
回复
21,22,45,30和41并不在一列上,21是不是指的01?
如果时01的话将原来的判断左边距改成左边距+单元格宽度就行了

87,910

社区成员

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

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