javascript - $this - 找不到正确的 jQuery 选择器

标签 javascript jquery jquery-selectors

由于我的 html 结构过于复杂(wordpress 评论系统),我很难找到使用哪些选择器来在我的页面上显示某些 div。

我没有将其全部粘贴到此处,而是创建了一个非常简化的布局版本并创建了一些 fiddle 。

  1. 这是显示所有 div 的完整页面:

https://jsfiddle.net/e25zvfyg/

  • 这就是我想要的工作方式。基本上,回复框和关联的现有评论都是隐藏的,直到单击“回复”,然后隐藏的 div 向下滑动。我已将我的“非工作”JS 包含在这个 fiddle 中。希望有人能告诉我哪里出错了?
  • https://jsfiddle.net/yf3oagx7/

     (function ($) {
    $('.single-f3ed-reply').hide();
    $('.f3ed-reply').hide();
    $('a.this-reply').click(function () {
        $('.single-f3ed-reply').hide();
        $(this).parents().next('.single-f3ed-reply').slideDown('fast');
        $(this).parents().next('.f3ed-reply').slideDown('fast');
        return false;
    });
    
    })(jQuery);
    

    任何帮助将不胜感激。

    最佳答案

    .parents() 返回所选元素上方的所有元素。您不希望这样,您只想向上直到包含 div/包装器。

    .next() 返回下一个项目(已过滤),这在 parents() 的上下文中没有任何意义

    向上移动到最近的环绕 div(最接近),然后再次向下(查找)找到您想要的项目:

        $(this).closest(".stream-wrap").find('.single-f3ed-reply').slideDown('fast');
        $(this).closest(".stream-wrap").find('.f3ed-reply').slideDown('fast');
    

    https://jsfiddle.net/yf3oagx7/1/

    关于javascript - $this - 找不到正确的 jQuery 选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32915893/

    相关文章:

    javascript - 有没有一种方法可以在使用 node-rdkafka 库生成消息时传递带有 header 的tenantId?

    javascript - 是否可以在 javascript 的提示警报中提供多个输入框?

    javascript - 如何检查/删除元素?

    javascript - 将元素向上移动 2 个位置

    javascript - 单击跨度内的隐藏文件输入会导致 RangeError

    javascript - 判断 3 次是否在半小时内的最干净方法

    javascript - 使用 react 我试图在值更新 onclick 时改变按钮的颜色

    javascript - 如何使用 Javascript/jQuery 获取表格行中的第一个单元格?

    php - 如何使用javascript隐藏子元素

    jquery - 将选定/找到的元素存储在变量中是否会提高性能?