一个HTML页面中有一个标题,想要实现的效果是:
标题旁边是一个[-]标签,点击后,被隐藏的段落被展开,标签变为[-],
再次点击[-]标签后,展开的段落被隐藏,
以下是代码,可是运行的时候,点击标签,段落可以实现收放,可是那个标签却完全没有改变,请问是什么原因呢?
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <title></title>
    <script language="javascript" type="text/javascript">
        function toggle(iconId, paraId) {
            var icon = document.getElementById(iconId);
            var panel = document.getElementById(paraId);
            icon.InnerHTML = (icon.InnerHTML == "[+]") ? "[-]" : "[+]";
            panel.style.display = ((panel.style.display == "") ? "none" : "");
        }
    </script>
</head>
<body>
    <label id="icon001" for="paragraph001" onclick='toggle("icon001", "paragraph001");'>[+]</label>标题
    <div id="paragraph001" style="display:none;">
    段落...
    </div>
</body>
</html>
<body>

解决方案 »

  1.   

    你把innerhtml给替换掉了 onclick也不会再触发了
      

  2.   

    看错了 是你的innerHTML写错了
      

  3.   

    楼主,楼上说的对,是你的innerHTML写错了
      

  4.   


            function toggle(iconId, paraId) {
                var icon = document.getElementById(iconId);
                var panel = document.getElementById(paraId);
                var bv=myBrowser();
                if(bv=="IE")
                {
                icon.innerText = (icon.innerText == "[+]") ? "[-]" : "[+]";
                }
                if(bv=="FF")
                {
                    icon.textContent = (icon.textContent == "[+]") ? "[-]" : "[+]";
                }
                panel.style.display = ((panel.style.display == "") ? "none" : "");
            }
            function myBrowser() {
                var userAgent = navigator.userAgent;
                if (userAgent.indexOf("Firefox") > -1) {
                    return "FF";
                }
                if (userAgent.indexOf("compatible") > -1 && userAgent.indexOf("MSIE") > -1) {
                    return "IE";
                }
                //Other Browser...
            }
      

  5.   

    敢问innerHTML哪里写错了???
      

  6.   

    多谢楼上的大侠,原来是火狐不支持innerHTML的原因,请问有没有什么别的html元素可以绕过这个问题实现同样的效果呢?
      

  7.   

    火狐怎么不支持innerHTML了 。
      

  8.   

    不是火狐不支持,把InnerHTML改为innerHTML就正常了。
      

  9.   

    气人啊!!!这javascript没有语法亮高,错了都不知道咋错的!!!
      

  10.   

    多谢各位的热心解答,顺带提供一个口碑还不错的javascript IDE: Aptana,有独立版的,也可以作为eclipse的插件
      

  11.   

    好像没有自动提示,Dreamweaver不错