1

First time trying javascript and i cant find a solution about this. I need a open/close div button.

if div1 is not visible and i press button 1

set it visible

set all other not visible

elseif div1 is visible and i press button 1

set it not visible

this is my code so far...

<script type="text/javascript">
    function toggle_visibility(id) 
    {
        if (document.getElementById(id).style.display=='block')
        {
            document.getElementById(id).style.display='none';
        }
        else
        {
            document.getElementById(id).style.display='block';

            for (i=0; i<5; i++)
            {
                document.getElementById(i).style.display='none';
            }
        }
    }
</script>

<button onclick="toggle_visibility(1);">
    1
</button>

...

<button onclick="toggle_visibility(5);">
    5
</button>

i forgot this ->

<div id="1" style="display:none">
1
</div>

...

<div id="5" style="display:none">
5
</div>
4

2 回答 2

1

您没有带有 id 的元素。并且 id 不能以数字开头(在 (X)HTML 中,但不是 HTML5)!如果您只想显示一个元素,请尝试我的showOnly功能。

<script type="text/javascript">
    function toggle_visibility(id) 
    {
        var i; // omiting this causes a global variable
        if (document.getElementById("a"+id).style.display=='block')
        {
            document.getElementById("a"+id).style.display='none';
        }
        else
        {
            document.getElementById("a"+id).style.display='block';

            for (i=1; i<=5; i++)
            {
                document.getElementById("a"+i).style.display='none';
            }
        }
    }

    function showOnly(id) {
        for(var i=1; i<=5; i++) {
            document.getElementById("a"+i).style.display='none';
        }
        document.getElementById("a"+id).style.display='block';
    }
</script>

<div id="a1" onclick="toggle_visibility(1);">1</div>
<!-- ... -->
<div id="a5" onclick="toggle_visibility(5);">5</div>

另见这个小提琴

于 2013-04-12T11:14:06.757 回答
0

您缺少 div 的 ID 属性。

<div id="yourId"> 

理想情况下,ID 不应以数字开头。

此外,您可以使用浏览器控制台窗口来帮助识别此类问题。

于 2013-04-12T11:15:20.097 回答