11

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,578
  • 8
  • 39
  • 49

3 Answers3

12

Use next()

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

Or simply:

$(this).next().hide();
Sarfraz
  • 377,238
  • 77
  • 533
  • 578
3

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

$(this).next().toggle();
Radu
  • 8,561
  • 8
  • 55
  • 91
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
  • 231,737
  • 57
  • 305
  • 359