如何使jQuery单击事件仅影响嵌套在同一父元素中的元素

时间:2009-08-31 23:22:07

标签: jquery

我今天早上是一个jQuery新手,这是我提出的代码,用于显示一个div,它伴随着调用它的锚点,在一个带有'foo'类的div中。它不起作用:P

$('div.foo').children('a').click(function(event){
    event.preventDefault();
    if ($(this).closest('div').('div').is(':hidden')) {
        $(this).closest('div').('div').show("slow");
    } else {
        $(this).closest('div').('div').hide("slow");
    }
});

HTML:

<div class="foo">
    <a href="#" title="">Click me!</a>
    <div>And this will appear!</div>
</div>

我希望能够有多个相同的foo div(当然除了嵌套div的实际内容之外),我需要做的就是将包含div的'foo'类分配给导致包含锚点以显示点击时包含的div。

这种事情甚至可能吗?提前感谢您的回复。

2 个答案:

答案 0 :(得分:6)

试试这个

$('div.foo a').click(function(event){
  event.preventDefault();
  $(this).next().toggle('slow');
});

答案 1 :(得分:1)

试试这个(假设'div.faq'应该是'div.foo',基于HTML):

$('div.foo').children('a').click(function(event){
    event.preventDefault();

    var parent = $(this).closest('div'),
    child = $('div', parent);

    if (child.is(':hidden')) {
      child.show("slow");
    } else {
      child.hide("slow");
    }
});