我正在构建 twitter 类型的应用程序(网站),我需要一些关于 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>
前两个 div 是用于删除和报告 twit 的弹出窗口。第三个 div 是实际 twit 所在的位置。两个弹出窗口的样式都设置为不显示。只要它们在 th 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);
});
现在这个问题它选择所有弹出框并显示它们,如果我只做 prev() 而不是 prevAll() 那么只有报告链接有效(因为 report_box 就在 twit 之前)并且它工作得很好,因为只有一个弹出是显示。但是当我为它放置 prev() 时,删除链接不起作用。
所以问题是我怎样才能选择不完全是以前的前一个元素,但是一个向上的元素。我尝试了兄弟姐妹(),这与 prevAll 选择所有具有 delete_box 类的元素的问题相同。