1

I want to call a function to show and modify content like this:

$('#element').someFunction();

I wrote this function:

function someFunction(){
     $(this).show();
     //other stuff
}

But this don't work. Can someone give me a hint how to solve this.

Josh Crozier
  • 233,099
  • 56
  • 391
  • 304
Tobias Schäfer
  • 1,330
  • 2
  • 17
  • 35

1 Answers1

8

You could extend jQuery and create a custom method:

$.fn.someFunction = function() {
  return this.hide();
};

$('.element').someFunction();
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

<div class="element">This should be hidden.</div>
<div class="element">This should be hidden.</div>

Internally .hide() will iterate over each element, but if you want to do this manually, you could just utilize the .each() method:

$.fn.someFunction = function() {
  return this.each(function() {
    // 'this' refers to the element here
  });
};
Josh Crozier
  • 233,099
  • 56
  • 391
  • 304