为什么这不适用于Firefox,但在IE中工作正常

时间:2010-12-09 12:16:48

标签: javascript cross-browser

当我单击IE上的行时,它调用hello()方法并且工作正常但不在Firefox中。我怀疑这一行

tr align="left" bgcolor="eeeeee" style="padding-top: 3px; cursor: pointer;">

因为当我删除它时,它的工作类型

<script language="javascript" type="text/javascript">
    function hello(){
    alert('hello');
    }
</script>
<span style="" onclick="hello();"
    onmouseover="this.children[0].style.backgroundColor='#D8EEEE'; this.children[1].style.backgroundColor='#D8EEEE';"
    onmouseout="this.children[0].style.backgroundColor=''; this.children[1].style.backgroundColor='';">
<tr align="left" bgcolor="eeeeee">
    style="padding-top: 3px; cursor: pointer;">
    <td class="blueFont" style="font-weight: bold; <%=style%>">

我已经尝试从onclick中删除分号

2 个答案:

答案 0 :(得分:3)

HTML无效,<span>元素不能包含<tr>元素。 Firefox和Internet Explorer正试图以不同的方式从中恢复。

IIRC,无论如何,Internet Explorer将<tr>包裹<span>,而Firefox会移动<span>,因此它位于<table>结束之后。因此,您尝试访问的范围的子元素不存在。

valid HTML开始。您可以使用<thead><tfoot><tbody>元素标记表格的各个部分。

答案 1 :(得分:2)

因为'span'中有'tr'?