Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 切换不是同级的div_Jquery_Html_Toggle - Fatal编程技术网

Jquery 切换不是同级的div

Jquery 切换不是同级的div,jquery,html,toggle,Jquery,Html,Toggle,我需要你的帮助,请。。。 我需要单击一个图标来打开一个隐藏的div,它不是下一个元素。 这是我的标记(record div在页面上重复了很多次 <div class='record'> <div class="marker_name left"><a href="marker.php?id=11444">Name</a></div> <div class="clear table"> <

我需要你的帮助,请。。。 我需要单击一个图标来打开一个隐藏的div,它不是下一个元素。 这是我的标记(record div在页面上重复了很多次

<div class='record'>
    <div class="marker_name left"><a href="marker.php?id=11444">Name</a></div>
    <div class="clear table">
        <div class="tr">
            <div class="td"><div class="icon_32"><img src="images/flags/DE.png"></div></div>
            <div class="td"><div class="icon_32 type_sprite spr_ASN"></div></div>
            <div class="td"><div class="icon_32"><img src="images/site/web_32.png"></a></div></div>
            <div class="td mid"><div class="bearing icon_32 bearing_N"></div></div>
            <div class="td mid"><div class="distance">0kM</div></div>
            <div class="td"><div class="trigger icon_32"></div></div>
        </div>
    </div>
    <div class="hidden">
        <ul>
            <li>List of features</li>
        </ul>
    </div>  
</div> 
类为“trigger”的div应该打开类为“hidden”的div,理想情况下,关闭现在可见的任何其他类为hidden。 有人能给我指一下正确的方向吗

$(document).ready(function(){
    $('.hidden').hide();

    $('.trigger').click(function() {
        var el = $(this).toggleClass('active')
                        .closest('.record')
                        .find('.hidden').toggle();

        $('.hidden:visible').not(el).hide();
    });
});


演示:

如果找到父记录,然后找到应该工作的隐藏子记录:

    $('.trigger').click(function() {
            $(this).parent('.record').find('.hidden').toggle();
    );

这会隐藏所有
.hidden
div,然后当单击触发器时,它会再次隐藏所有div,查看触发器并找到最近的
。在dom树上记录
,找到其中的
.hidden
,然后切换其可见性。

当然,它也会隐藏当前的
.hidden
,然后切换到是的,所以它总是可见的?很好的观点!经过思考,我会按照你所展示的路线去做。哇,我没想到会有这么快的答案,这正是我想要的
$(document).ready(function () {
    $('.hidden').hide();

    var $recs = $(".record"),
        $hiddens = $recs.find(".hidden"),
        $triggers = $recs.find(".trigger");
    $('.trigger').click(function () {
        $(this).toggleClass('active');

        var $rec = $(this).closest('.record');
        var $hidden = $rec.find('.hidden').toggle();

        $hiddens.not($hidden).hide();
        $triggers.not(this).removeClass('active')
    });
});
    $('.trigger').click(function() {
            $(this).parent('.record').find('.hidden').toggle();
    );
$(document).ready(function(){
    $('.hidden').hide();

    $('.trigger').click(function() {
        $('.hidden').hide();
        $(this).toggleClass('active').closest('.record').find('.hidden').toggle();
    });
});