更改classname不适用于nextSibling

时间:2011-04-08 11:21:24

标签: toggle classname

我的代码如下:

<div class="sidebar" id="southsidebar">

    <!-- archives -->
    <div class="widget">
        <h3>Archives</h3>
        <div class="easy-archives">
            <div class="monthly-archives">
                <div class="month">
                    <div class="title">
<a onclick="toggle(this);" href="javascript:void(0);" class="open-button">toggle</a>                            
                        <a title="Show detailed results for February 2011 " href="#" class="detail">February 2011 </a>                          
                        <em>(2 posts)</em>
                        <div class="fixed"></div>
                    </div>

                    <ul class="open">
                        <li>08: <a title="View this post 1" href="#">Post 1</a><em>(0 comments)</em></li>
                        <li>03: <a title="View this post 2" href="#">Post 2</a><em>(5 comments)</em></li>                       
                    </ul>                               
                </div>
            </div>
        </div>

        <div class="easy-archives">
            <div class="monthly-archives">
                <div class="month">
                    <div class="title">
                        <a onclick="toggle(this);" href="javascript:void(0);" class="open-button">toggle</a>                            
                        <a title="Show detailed results for September 2008" href="#" class="detail">September 2008</a>                          
                        <em>(1 posts)</em>
                        <div class="fixed"></div>
                    </div>

                    <ul class="open">
                        <li>27: <a title="View this post 1"href="#">Post 1</a><em>(277 comments)</em></li>              
                    </ul>                               
                </div>
            </div>
        </div>
    </div>

</div>

<script type="text/javascript">
    function toggle(button) {
        if (button.className == "open-button") {
            button.className = "closed-button";
        } else {
            button.className = "open-button";
        }

        var parent = button.parentNode;
        var dailyArchives = parent.nextSibling;
        if (dailyArchives.className == "open") {
            dailyArchives.className = "closed";
        } else {
            dailyArchives.className = "open";
        }
    }
</script>

<style type="text/css">
.easy-archives .closed {
display:none;
}
</style>

当nextSibling不起作用时,它适用于标记 请有人帮助我。对不起我的英语不太好。

1 个答案:

答案 0 :(得分:0)

基本上你想在div class =“month”

下获得ul标签

试试这个,

var parent = button.parentNode.parentNode; //得到div class =“month”
var dailyArchives = parent.getElementsByTagName('ul')。item(0); //得到ul class =“open”