Javascript 同一页面上的多个切换

Javascript 同一页面上的多个切换,javascript,toggle,Javascript,Toggle,因此,我有以下HTML代码: <span class="full-width-red-left"></span> <div class="full-width-red-wrapper">"Title <img src="/images/header_toggle_up.png" class="header-toggle" id="stafflist-icon" /> </div> <span class="full-wid

因此,我有以下HTML代码:

<span class="full-width-red-left"></span>
<div class="full-width-red-wrapper">"Title
    <img src="/images/header_toggle_up.png" class="header-toggle" id="stafflist-icon" />
</div>
<span class="full-width-red-right"></span>
<div class="stafflist-content">
    <div class="full-width-content">
        Content
    </div>
</div>
<div class="full-width-footer"></div>

<span class="full-width-red-left"></span>
<div class="full-width-red-wrapper">"Title
    <img src="/images/header_toggle_up.png" class="header-toggle" id="stafflist-icon" />
</div>
<span class="full-width-red-right"></span>
<div class="stafflist-content">
    <div class="full-width-content">
        Content
    </div>
</div>
<div class="full-width-footer"></div>

“头衔
内容
“头衔
内容
这在页面上多次显示,由PHP foreach生成

然后,我将尝试使用以下JS代码:

<script type="text/javascript">
$(document).ready(function() {

    $("#stafflist-icon").toggle(function(){

       $(".stafflist-content").slideUp('slow');
    } , 

    function() { 
        $(".stafflist-content").slideDown('slow');
    }); 
}); 
</script>

$(文档).ready(函数(){
$(“#stafflist icon”).toggle(函数(){
$(“.stafflist content”).slideUp('slow');
} , 
函数(){
$(“.stafflist content”).slideDown('slow');
}); 
}); 
显然,使用该代码,如果按下任何#stafflist图标,所有.stafflist内容div都会上下滑动。我需要的是,当按下#stafflist图标时,只有next.stafflist内容向上或向下滑动,而不是每一个


如果不使用foreach中的计数器或其他东西为每个DOM元素生成ID,这是可能的吗?

您不能拥有具有相同ID的多个DOM元素

只有具有该ID的第一个元素才能获取事件

没有什么能像你所希望的那样起作用


您可以使用如图所示的
nextFind
插件选择要滑动的项目

//to be used instead of prev/nextAll().eq(0);
(function ($) {
    var dirFind = function (selector, dir) {

        var elems = [];
        this.each(function (i, item) {
            while (item = item[dir]) {
                if (item.nodeType == 1) {
                    if ($(item).is(selector)) {
                        elems.push(item);
                        break;
                    }
                }
            }
        });

        return (this.pushStack(elems, dir, selector));
    }

    $.each({
        'prevFind': 'previousSibling',
        'nextFind': 'nextSibling'
    }, function (method, dir) {
        $.fn[method] = function (selector) {
            return dirFind.call(this, selector, dir);
        };
    });
}(jQuery));
//end of new prevall, nextall
因此,您可以:

$(this).nextFind(".stafflist-content").slideDown('slow');

我在几天前做的页面上使用了切换。。。看看菜单的html和源代码。www.termoservis.hr一个页面上没有多个实例吗?如果是单切换,则操作简单。您可以获取当前切换的索引,然后仅切换该索引的内容,例如$(“.StatffList内容:eq(“+toggleIndex+”))。SlideDown(“慢”);稍微更改了我的问题。@Tenatious这不是一个轻微的更改。如果您有新问题,请提出新问题……不要更改操作。