1

私はこのツリーを動的に作成しています。問題は、それらがすべて同じクラス名を持っているため、開いているすべてのdivを閉じることです。

使用しようとしています$(this).parent().next('.sticker').hide();が、何も起こりません。私はそれを間違って使用していますか?

    $('#note-btn').click(function() {
        $.get('xml/note.xml', function(data) {
            $(data).find('notes').each(function() {

                var notes = '<div class="notes">';

                notes += '<div class="notes-close">' + '</div>';
                $('#page-content-wrapper').append(notes);
            });

            $(".notes-close").click(function()
            {
                $(this).parent().next('.notes').toggle();
            });

        });

    });
});

これの出力はです。

<div id="page-content-wrapper">
<div class="notes"> 
<div class="notes-close"></div> 
</div> 
</div>

ここで、note-closeは、ノートの閉じるボタンです。

4

1 に答える 1

1

私はあなたの閉じるボタンが現在のノートを閉じるべきだと思っているので、.next()/.prev()は必要ありません。.closest()DOMを最初に移動する.notesために使用できます.toggle()

交換:

$(this).parent().next('.notes').toggle();

と:

$(this).closest('.notes').toggle();
于 2013-03-14T21:02:40.010 に答える