9

How could i use the adjacent selector "+" with the $(this).

I would need a help with the commented lines with //this doesnt work:

$(".ExpandCollapse").click(function () {
            if ($(this).nextUntil('.Collapsable').is(':visible'))
            {
                //this doesnt work 
                $(this + ".Collapsable").hide();
            }
            else
            {
                //this doesnt work
                $(this + ".Collapsable").show();
            }
        });

Could you give me a hand?

Thanks a lot in advance.

Best Regards.

Jose

Sosi
  • 2,544
  • 8
  • 39
  • 48

3 Answers3

12

Use next()

$(this).next(".Collapsable").hide();

Or simply:

$(this).next().hide();
Sarfraz
  • 367,681
  • 72
  • 526
  • 573
3

You can also cut down on having two statements for hiding and showing:

$(this).next().toggle();
Radu
  • 8,304
  • 8
  • 51
  • 89
1

this is a reference to the DOM element of invocation. You can't concat a string to that.

So you either can directly use this to act on it

$(this).hide();

or you can walk through the DOM from there

$(this).next().hide();
$(this).prev().hide();
$(this).closest('.Collapsable').hide();
// another 200 methods
jAndy
  • 223,102
  • 54
  • 301
  • 354