0

jQuery を使用して、クラス「our-partner-readmore」で以前の DIV を取得しています。私はたくさん試しましたが、それを行うことはできませんでした。

HTML

<div class="our-partner-readmore"><a class="accordion-toggle btn-readmore collapsed" data-toggle="collapse" data-parent="#accordion2" href="#collapse2"></a></div>    

<div class="our-partner-readmore"><a class="accordion-toggle btn-readmore collapsed" data-toggle="collapse" data-parent="#accordion2" href="#collapse2"></a></div>

JS

$('a.btn-readmore').on("click", function(){
    var is_collapsed = $(this).hasClass("collapsed");
    alert(is_collapsed);
        if(is_collapsed){
            $(this).prev('.our-partner-readmore').addClass("none");
            $(this).next('.our-partner-readmore-closed').removeClass("none");
        } else {
            $(this).prev('.our-partner-readmore-closed').addClass("none");
            $(this).next('.our-partner-readmore').removeClass("none");
    }
});

詳細説明

「a.btn-readmore」をクリックするたびに、jQuery を使用して前の div クラス「our-partner-readmore」を動的に取得しようとしています。

みんなありがとう

4

3 に答える 3

1
         $(this).prev and   $(this).next are to search for the siblings 

クラスを適用する div はクリックされたリンクの親であるため、最初にその親に移動します

次のようなコードを書くことができます

        $('a.btn-readmore').on("click", function(){
            var is_collapsed = $(this).hasClass("collapsed");
            alert(is_collapsed);
                if(is_collapsed){
                    $(this).parents('.our-partner-readmore').prev().addClass("none");
                    $(this).parents('.our-partner-readmore-closed').next().removeClass("none");
                } else {
                    $(this).parents('.our-partner-readmore-closed').addClass("none");
                    $(this).parents('.our-partner-readmore').removeClass("none");
            }
        });
于 2013-08-08T04:14:04.307 に答える
0

.prev()は要素の前の兄弟を提供します。必要なのは祖先要素です

また、 .closest()を使用して、指定されたセレクターに一致する最も近い先祖を見つけることができます

$(this).closest('.our-partner-readmore').addClass("none");
于 2013-08-08T04:02:36.310 に答える