这个Javascript代码有什么问题?

时间:2010-01-08 21:42:33

标签: javascript html xhtml javascript-events

我相信此代码块上的某些内容未正确编码,因此在XHTML 1.0 Transitional上不兼容。

代码段折叠div,然后点击它们将展开。

有人可以看出可能出现的问题吗?

<script type="text/javascript">

function toggle(div){
el = document.getElementById(div);
    if (el.style.display == 'none')
    {
        el.style.display = '';
    } else {
        el.style.display = 'none';
    }
}

</script>

我在<BODY>标记之前有这个。如果我删除DOCTYPE另一个菜单,我已经停止工作,但默认情况下行会展开并且不会折叠。

4 个答案:

答案 0 :(得分:2)

  1. 您应该检查传递的参数是否有效(例如,不是undefined,空字符串等)。
  2. 您应该检查document.getElementById(div)是否找到了该元素(例如,即使有效名称在文档加载时也不起作用,而<script>在源代码中的位置早于您所指的元素。)
  3. 您正在创建全局变量el(将var放在作业前面)。
  4. W3C建议尽可能避免使用Transitional DTD,今天可以不使用<font>bgcolor。使用XHTML 严格,除非您不知道MIME类型是什么,然后使用HTML5。

答案 1 :(得分:0)

而不是el.style.display = '';尝试el.style.display = 'block';

答案 2 :(得分:0)

您不应设置style.display = '',而应将其设置为'block''inline''table-row'

答案 3 :(得分:0)

它最终成为div上一个简单的显示css属性的问题。有一个标记错误。

相关问题