Javascript JS:单击h1将另一个div的display设置为none

Javascript JS:单击h1将另一个div的display设置为none,javascript,css,Javascript,Css,我对使用js编写脚本非常陌生。我的问题是,如何在h1设置onclick,从而在另一个div中将显示设置为none 这是我的代码: 变压器 function toggleGroups() { function getAllGroups() { titlebars = document.getElementsByClassName('titlebar_js');

我对使用js编写脚本非常陌生。我的问题是,如何在h1设置onclick,从而在另一个div中将显示设置为none

这是我的代码:

变压器

        function toggleGroups()
        {
            function getAllGroups()
            {
                titlebars = document.getElementsByClassName('titlebar_js');
                groupfields = document.getElementsByClassName('inner_groups_gether');
                for(i = 0; i < titlebars.length;i++)
                {
                    tb = titlebars[i];
                    iter = i;
                    tb.onclick = function()
                    {
                        alert(iter);
                        groupfields[iter].style.display = 'none';
                    }
                }
            }           
            getAllGroups();
        }

        window.onload = function()
        {
            toggleGroups(); // Aufruf der Funktion
        }

它不起作用。

你真的应该看看javascript库,比如。

你陷入了一个常见的JS闭包错误。试试这个:

tb.onclick = function(val) {
                    return function() {
                    alert(val);
                    groupfields[val].style.display = 'none'; }
                }(iter);
在这里,您可以阅读有关使用闭包和事件处理程序的更多信息:

嘿,另一个人是对的,jQuery非常适合快速解决这个问题。例如:

<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
        jQuery(window).bind("load", function() { 
            $('h1').click(function() {
                $('div.toBeHidden').css('display','none');
            });
        });
    </script>
</head>
<body bgcolor="yellow">
<h1>Click me!</h1>
<div class="toBeHidden">
    This block will be hidden after clicking the h1... 
</div> 
</body>
</html>
在这里,您告诉浏览器抓取任何h1标记,并使类为toBeHidden的div消失


您可以学习jQuery。这肯定是值得的。在开始使用jQuery之后,我很少再使用纯javascript。

-1:这太模糊了,没有什么用处。链接到一个类似于使用jQuery的请求的示例,很好,但这不是特别有用。不够:询问者希望每个h1隐藏其各自的div,而不是所有div。
<html>
<head>
    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript">
        jQuery(window).bind("load", function() { 
            $('h1').click(function() {
                $('div.toBeHidden').css('display','none');
            });
        });
    </script>
</head>
<body bgcolor="yellow">
<h1>Click me!</h1>
<div class="toBeHidden">
    This block will be hidden after clicking the h1... 
</div> 
</body>
</html>