Opps, after re-reading the original post it should be
$(this).parent().next().find(".a1").css({ "visibility": "hidden" });

However, this only works for #container1 .link1 and
#container2 .link1. If you click #container3 .link1, nothing happens.

On Jul 16, 10:24 am, Jules <jwira...@gmail.com> wrote:
> It should be siblings() not find().
>
> On Jul 16, 8:00 am, Benn <bennmey...@gmail.com> wrote:
>
> > Is there a non-structure specific way of finding the next element with
> > a given class? for example you have a structure of:
>
> > <div id="container1">
> >   <a href="#" class="link1">link</a>
> >   <div class="a1">asdf</div>
> > </div><!-- #container1 -->
>
> > <div id="container2">
> >   <a href="#" class="link1">link</a>
> >   <div class="a1">ghjl</div>
> > </div><!-- #container2 -->
>
> > <div id="container3">
> >   <a href="#" class="link1">link</a>
> >   <div class="a1">qwer</div>
> > </div><!-- #container3 -->
>
> > When you click on the link in container1 the expected behavior is to
> > change the css on a1 in container2 but not in container1 or
> > container3. I have tried playing with parent, next and filter without
> > success. this is the best I have is:
>
> > $(document).ready(function(){
> >   $(".link1").click(function(){
> >     $(".a1").css({"visibility":"hidden"}); //hides all a1's but keeps
> > the space
> >   });
>
> > });

Reply via email to