jQuery 如何使用类选择器显示最近的隐藏 div

发布于 2024-12-25 04:11:33 字数 905 浏览 1 评论 0原文

我研究了 jQuery closeest()、next() 和 nextAll(),但没有一个与我的代码相关,因为我的目标不是祖先/兄弟姐妹/也不是孩子。我无法弄清楚如何在单击跨度内的链接后选择最近的隐藏 div。它可以与此代码一起使用,但味道很糟糕。正确的写法是什么?如何选择隐藏在“添加评论”链接下方的“post_comments”类?

这是我的代码:

<div class="skittles">
<span>
    <a href="#" class="comment_count">Add Comment</a>
</span>
<span>3 days ago</span>
</div>

<div class="post_comments hidden">
<input class="comment_input" type="text" placeholder="enter your comment" data-type="post" />
</div>

jQuery

  $(function(){
        $(".comment_count").click(function(e){
            var $test = $(this).parent().parent().next();
            $test.show();
            e.preventDefault();
        });

    });

到 jfiddle 的工作但丑陋的代码的链接 http://jsfiddle.net/N5a2v/9/

I researched jQuery closest(), next(), and nextAll() but none relate to my code since I am not targeting an ancestor/sibling/ nor child. I wasn't able to figure out how to select the closest hidden div after clicking a link that is within a span. It works with this code but it smells terrible. What is the correct way to write this? How can I select the "post_comments" class that is hidden below my Add Comment link?

Here is my code:

<div class="skittles">
<span>
    <a href="#" class="comment_count">Add Comment</a>
</span>
<span>3 days ago</span>
</div>

<div class="post_comments hidden">
<input class="comment_input" type="text" placeholder="enter your comment" data-type="post" />
</div>

jQuery

  $(function(){
        $(".comment_count").click(function(e){
            var $test = $(this).parent().parent().next();
            $test.show();
            e.preventDefault();
        });

    });

A link to jfiddle of the working but ugly code
http://jsfiddle.net/N5a2v/9/

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

深者入戏 2025-01-01 04:11:33
$(function(){
    $(".comment_count").click(function(e){
      $(this).parents("div.skittles").next("div.post_comments").show();        
        e.preventDefault();
    });

});

http://jsfiddle.net/N5a2v/13/

$(function(){
    $(".comment_count").click(function(e){
      $(this).parents("div.skittles").next("div.post_comments").show();        
        e.preventDefault();
    });

});

http://jsfiddle.net/N5a2v/13/

泛泛之交 2025-01-01 04:11:33

:hidden 伪选择器可能就是您想要的。

您想要页面上的第一个隐藏 div 吗?

$(".comment_count").click(function(e){
    var $test = $("div:hidden:first");
    $test.show();
    e.preventDefault();
});

更新的 FIDDLE


或第一个隐藏的 post_comments div ?

$(".comment_count").click(function(e){
    var $test = $("div.post_comments:hidden:first");
    $test.show();
    e.preventDefault();
});

更新的 FIDDLE

The :hidden pseudoselector is likely what you want.

Do you want the first hidden div on the page?

$(".comment_count").click(function(e){
    var $test = $("div:hidden:first");
    $test.show();
    e.preventDefault();
});

UPDATED FIDDLE


Or the first hidden post_comments div?

$(".comment_count").click(function(e){
    var $test = $("div.post_comments:hidden:first");
    $test.show();
    e.preventDefault();
});

UPDATED FIDDLE

¢蛋碎的人ぎ生 2025-01-01 04:11:33

你的隐形 div:

<div class="post_comments" style="display:none">
<input class="comment_input" type="text" placeholder="enter your comment" data-type="post" />
</div>

在 Jquery 中:

$(function(){
    $(".comment_count").click(function(e){          
        $(".post_comments").show();
        e.preventDefault();
    });

});

Your invisible div:

<div class="post_comments" style="display:none">
<input class="comment_input" type="text" placeholder="enter your comment" data-type="post" />
</div>

In Jquery:

$(function(){
    $(".comment_count").click(function(e){          
        $(".post_comments").show();
        e.preventDefault();
    });

});
北斗星光 2025-01-01 04:11:33
$(function(){
    $(".comment_count").click(function(e){
        $(this).closest('.skittles').next().show();
        e.preventDefault();
    });

});

小提琴:http://jsfiddle.net/N5a2v/18/

$(function(){
    $(".comment_count").click(function(e){
        $(this).closest('.skittles').next().show();
        e.preventDefault();
    });

});

fiddle : http://jsfiddle.net/N5a2v/18/

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文