【问题标题】:How do i find a specific form using jquery and a link i clicked我如何使用 jquery 和我点击的链接找到特定的表单
【发布时间】:2010-02-01 07:06:56
【问题描述】:

我有一个链接,想显示/隐藏一个表单。第一行是这样做的,但它是对它自己的评论 div 中的一个表单内的所有表单进行的。如何选择表格。其他 3 个是猜测并且不起作用(他们似乎什么都不做)。我正在考虑查看评论,然后查看表单并在其上使用切换(因为第一行有效但适用于所有人)就可以了。但到目前为止,我似乎得到了 0 个元素

$('.comment .reply a').click(function() {
    $('.comment form').toggle('slow');
    //$(this).parent('.comment').children('form')[0].toggle('slow');
    //$(this).parent('.comment').find('form').toggle('slow');
    //$("form", this).toggle('slow');
});

【问题讨论】:

    标签: jquery css-selectors


    【解决方案1】:

    如果我理解正确,应该这样做:

    $('.comment .reply a').click(function() {
        $(this).closest(".comment").find("form").toggle('slow');
    });
    

    也就是说,获取类.comment的最接近的父div到被点击的锚点,并找到它的后代form元素。

    【讨论】:

    • @Doug Neiner - 谢谢,但显然不是。我刚投了反对票。很想知道原因。
    • 太疯狂了,这是在没有实际看到 HTML 的情况下提供的正确答案。根据提供的原始选择器,这将起作用。
    • 奇怪的是,当我复制粘贴它时这不起作用(我没有投票)但现在它起作用了,我不知道为什么。 +1 并接受。
    • 现在我看到了问题所在。这是一棵树,它也形成了每个孩子。我可以让它只做它看到的第一个吗? (最高最接近)
    【解决方案2】:

    你可以试试

    $(this).closest('form').toggle();
    

    【讨论】:

      【解决方案3】:

      id 添加到form,并在选择器中使用它。

      【讨论】:

        【解决方案4】:

        改成

        $('.comment .reply a').click(function(event)
        {
            $(event.target).parent('form').toggle('slow);
        });
        

        这将获取事件的目标,找到父表单并切换它。

        【讨论】:

        • 您不应该在点击事件中使用event.target,除非您确切知道它的含义并想使用它。请改用this 或等效的event.currentTarget。例如,如果用户单击<a> 标记内的<strong> 标记,您的脚本就会失败。
        • 对,但是为什么锚点内会有<strong> 标记?使用 CSS 设置锚点样式会是更好的选择,或者可能将锚点包裹在强标签中。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2022-01-04
        • 2016-04-05
        • 1970-01-01
        • 2012-10-06
        相关资源
        最近更新 更多