我无法隐藏div标签

时间:2012-09-16 23:37:07

标签: javascript html

请看下面的代码:

<div id="flashwelcome" style="display: none">
  <h2 align="center">
    <script language="JavaScript1.2">
        var message = "Welcome to Dynamic Report Generation POC"
        var neonbasecolor = "green"
        var neontextcolor = "blue"
        var neontextcolor2 = "red"
        var flashspeed = 200 // speed of flashing in milliseconds
        var flashingletters = 3 // number of letters flashing in neontextcolor
        var flashingletters2 = 1 // number of letters flashing in neontextcolor2 (0 to disable)
        var flashpause = 0 // the pause between flash-cycles in milliseconds
        /**
         * No need to edit below this line
         */
        var n = 0
        if (document.all || document.getElementById) {
            document.write('<font color="' + neonbasecolor + '">')
            for (m = 0; m < message.length; m++)
            document.write('<span id="neonlight' + m + '">' + message.charAt(m) + '</span>')
            document.write('</font>')
        } else {
            document.write(message)
        }

        function crossref(number) {
            var crossobj = document.all ? eval("document.all.neonlight" + number) : document.getElementById("neonlight" + number)
            return crossobj
        }

        function neon() {
            /**
             * Change all letters to base color
             */
            if (n == 0) {
                for (m = 0; m < message.length; m++)
                crossref(m).style.color = neonbasecolor
            }

            /**
             * cycle through and change individual letters to neon color
             */
            crossref(n).style.color = neontextcolor

            if (n > flashingletters - 1) crossref(n - flashingletters).style.color = neontextcolor2
            if (n > (flashingletters + flashingletters2) - 1) crossref(n - flashingletters - flashingletters2).style.color = neonbasecolor


            if (n < message.length - 1) {
                n++
            } else {
                n = 0
                clearInterval(flashing)
                setTimeout("beginneon()", flashpause)
                return
            }
        }

        function beginneon() {
            if (document.all || document.getElementById) flashing = setInterval("neon()", flashspeed)
        }
        beginneon();​
    </script>
  </h2>               
</div>

这就是我隐藏上述div tag的方法,但它没有被隐藏,

document.getElementById("flashwelcome").style.display = 'none';

我认为没有问题,但仍然没有隐藏div标签。

请帮我找到问题。

此致

2 个答案:

答案 0 :(得分:2)

你的javascript代码非常难看,正如其他所有人都注意到的那样。

但是,据我所知,你第一次使用document.write会覆盖DOM的全部内容(即整个页面的内容)。因此,只要执行第一个document.write语句,你的flashwelcome div就会消失。

您可以在此处找到稍微修改过的代码版本:http://jsfiddle.net/carlesandres/eTY4v/

您会注意到我已将h2flashwelcome div移至document.write句子。我还按照JSLint(通常的javascript良好做法)推荐添加了分号和花括号

闪烁仍不起作用。你必须弄清楚原因。祝你好运!

答案 1 :(得分:1)

假设您正在使用代码隐藏脚本标记内的div,并且所述脚本元素嵌入在下面的文档中,其中id = flashwelcome的div是,这应该可以正常工作。如果没有,请检查浏览器中是否启用了JavaScript。

确保您的代码如下所示:

<div id="flashwelcome">...</div>
<script>
document.getElementById("flashwelcome").style.display = 'none';
</script>

此外,您确实意识到您最初使用内联css来隐藏“flashwelcome”div?


正如Musa在评论中指出的那样:你在h2标签中使用的javascript(?)真的很旧而且写得非常糟糕。至于它的功能:你确定你的用户真正希望在你的网站上看到的那些可怕的闪烁文字吗?