我有一个asp.net应用程序,它从数据库中提取数据并将其放入表中。我设置它,以便用户单击链接工作的行中的任何位置。基本上代码是这样的:
<a href="showthisjob.aspx<tr>
<td align="left">stuff</td>
<td align="left">stuff</td>
<td align="left">stuff</td>
</tr></a>
这在IE中运行良好,但在Chrome和Firefox中,链接不起作用。有人可以告诉我为什么吗?我的学生需要为网页设计比赛解决这个问题。
答案 0 :(得分:1)
根据HTML标准,<tr>
不是<a>
标记的有效子元素,<a>
标记只能包含其他内嵌元素(例如<span>
1}},但不包括其他<a>
标记)和/或文字。 IE基本上只是更宽容,并遵循它认为你想要做的事情而不是你真正应该做的事情。您可以尝试查看其他浏览器实际允许您填充<a>
内部的内容并进行操作,但如果这是针对网页设计竞赛,我不会推荐它。
要在遵循标准的同时获得类似功能,您可能需要使用onClick事件和嵌套表,或者更好地使用<div>
,如果您能够负担学习曲线,因为这是竞赛。如果没有,比如:
<table>
<tr>
<td onClick="location.href='showthisjob.aspx'">
<table>
<tr>
<td align="left">stuff</td>
<td align="left">stuff</td>
<td align="left">stuff</td>
</tr>
</table>
</td>
</tr>
....
</table>
答案 1 :(得分:0)
嗯,首先,我希望这个拼写错误不在您的实际代码中:您错过了>
代码的结束<a>
。
<a href="showthisjob.aspx><tr>
<td align="left">stuff</td>
<td align="left">stuff</td>
<td align="left">stuff</td>
</tr></a>
但实际上你无法将这样的表链接起来。我想这与浏览器有关,而IE在HTML标准方面通常与其他浏览器的工作方式不同。我认为你不能在<tr>
上嵌套<a>
,而是告诉微软......
我建议将<a>
放在每个<td>
内。