Twitter タイプのアプリ (Web サイト) を作成していますが、jQuery セレクターについて少し助けが必要です。
これは HTML 構造です。
<div class="delete_box">
</div>
<div class="report_box">
</div>
<div class="twit">
<a class="report_link">report</a>
<a class="delete_link">delete</a>
</div>
最初の 2 つの div は、つぶやきを削除して報告するためのポップアップです。3 番目の div は、実際のツイットがある場所です。両方のポップアップのスタイルは、表示なしに設定されています。この構造は、db に twtis がある限りループされます。
これは、表示する必要があるポップアップ ボックスを選択する jQuery コードです。
$(document).on('click', '.delete_link', function() {
var op_twit = $(this).parents('.twit').prevAll('.delete_box');
popup(op_twit);
});
$(document).on('click', '.report_link', function() {
var op_twit = $(this).parents('.twit').prevAll('.report_box');
popup(op_twit);
});
これに関する問題は、すべてのポップアップ ボックスを選択して表示することです。prevAll() ではなく prev() のみを実行すると、レポート リンクのみが機能し (report_box は twit の直前にあるため)、ポップアップが 1 つだけであるため、うまく機能します。示しています。しかし、prev() を配置すると、削除リンクが機能しません。
したがって、問題は、正確に前ではなく、1つ上にある前の要素をどのように選択できるかです。siblings() を試してみましたが、これは prevAll が delete_box クラスを持つすべての要素を選択するのと同じ問題です。